Spring Boot集成Redis

在昨天我们讲解了如何在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的同步机制了解么?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180916G0OQOC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券