“在昨天我们讲解了如何在Linux上部署Redis,那么今天我们来看一看Spring Boot如何集成Redis。”
安装Redis是我们学习它的第一步,当我们安装好之后就要开始学习如何在项目中去使用它。
01
—
Spring Boot集成
首先是导入依赖:
加载成功后我们首先去测试一下:
上面studyJava是我们上节安装后通过redis-cli存储的一个key,但是测试发现会报错。
报错为连接失败,但是服务器内部是可以进行访问,这也就是不能外网访问。遇到这种情况,要么就是防火墙,要么就是redis的配置文件。在我的服务器上,我并没有开启防火墙,那么肯定是配置文件有问题来。
在redis的目录下面,有一个redis.conf配置文件,这里面我们需要修改两个东西:
1.将protected-mode yes改为protected-mode no。也就是关闭保护模式
2.将bind 127.0.0.1 注释掉。
但是我建议在正式环境上将他们开启。防止被黑。在今天早上我就发现,我的redis出现了问题:
疑似被黑了,我的处理方式:首先要将这些key清除掉(使用flushall命令)。然后将redis改成密码连接,设置密码访问认证,可通过修改redis.conf配置文件中的"requirepass" 设置复杂密码 (需要重启Redis服务才能生效)。
加密后Spring Boot的配置文件该如何写呢?
好了说完这些,我们来看一下实际的效果吧。
02
—
获取Redis数据
在单元测试中,虽然跑通了,但是获取的key对应的value总是为null。
我们来服务器中看一下
明明是有值的,为什么我的项目中获取不到呢?很简单,我们通过项目set一个值进去,然后看看效果
你没看错,我们set进去是这样的key,这是什么问题呢?这是因为RedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的
那如果你不能接受这种方式,那么如何处理呢?其实很简单,更改序列化,在启动类加入下面的代码。
这样便解决了序列化的问题。
到目前为止,我们已经成功的将Redis集成到我们的项目中了,那么通过这篇文章我们能够收获到什么呢?
1.为什么项目不能连接到Redis服务器
2.不开启保护策略有什么危害
3.如何预防redis被攻击
4.RedisTemplate的序列化对我们直接操作Redis有什么影响
跟小伙伴们分享一下这个周末的推送安排,大家可以重点关注自己喜欢的文章:
九月16号周日:Spring Boot集成Redis
那么今天小程序更新的题库是什么呢?
今天小程序更新的题目是:
1.预防Redis服务器被攻击的措施有哪些
2.为什么redis需要把所有数据放到内存中?
3.Redis是单进程单线程的?
4.Redis中一个字符串类型的值能存储最大容量是多少?
5.Redis的同步机制了解么?
领取专属 10元无门槛券
私享最新 技术干货