今天试着用springboot整合redis,过程中遇到了一些小问题,遂将其记录下来。问题虽小,不过碰上了也很是恶心。
- springboot整合redis步骤
我们先来说如何整合redis,首先你需要在springboot的pom.xml文件里添加springboot的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
然后在application.properties中配置redis的连接信息,这里我们配置的比较简单,没有把一些细节都配置好。
spring.redis.host=192.168.164.134//连接地址
spring.redis.port=6379//redis端口号
spring.redis.password=//redis密码
最后在需要用到redis的地方将RedisTemplate注入就可以了。类似于下面:
@Autowired
private RedisTemplate<Object,Object> redisTemplate;
这样基本上就完成了,接下来就是进行测试的时候了,然后就是这篇文章的重点啦。
- 坑一
当你去测试的时候,你碰到的第一个坑应该就是这个了:
Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException:
Unable to connect to 192.168.164.134:6379
你发现你居然连不上,仔细看了一下,地址没错,端口号没错,这是怎么回事呢?
那是因为你的redis的配置还有点问题,需要修改redis.conf文件,将bind localhost或者bind 127.0.0.1这一行注释掉,这样就允许远程主机访问了。
bind localhost 只能本机访问,局域网内计算机不能访问。
bind 局域网IP 只能局域网内IP的机器访问。
另外你还需要将protected-mode yes 改成protected-mode no,这样外部网络就可以直接访问了。
- 坑二
ERR Client sent AUTH, but no password is set
出这个错的原因是因为客户端设置了auth认证,但没有设置密码。只需要将springboot的配置文件中的spring.redis.password删掉就可以了。
以上就是我在配置的时候碰到的问题,希望能够帮助到大家。