在进行SpringBoot整合redis时,连接redis时出现了好多坑点,以此记录下来。完整步骤附上
1、先进行虚拟机中的redis的安装
环境:centOS7 本地虚拟机(或者阿里云…都可)
- 先进行下载redis的安装包 redis下载链接
- 将tar包拷贝到redis上面 下载获得tar包放入我们的Linux目录/opt
3.进行解压redis
tar -zxvf redis-xxxx.tar.gz
###解压完之后 进入解压的redis目录下
cd redis-xxxx
4.进行对应解压的redis目录下之后要进行编译
##make命令进行编译
make
#make命令编译完成后 make install 进行安装
make install
到此,redis已经安装完成,接下来就是springboot整合redis并进行连接
2.修改redis.conf配置进行外部连接
###进入redis目录下 修改相关配置
vi reids.conf
进行操作
1.修改 protected-mode yes 改为:protected-mode no
2.注释掉 #bin 127.0.0.1
3.将 daemonize no 改成 yes
完成之后进行启动redis操作:
##开启redis服务器
redis-server redis.conf
看见上图的提示说明redis的服务器已经启动。
第一次安装之后redis进行设置密码
1、初始化Redis密码:
在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数;
比如 requirepass test123;
(Ps:需重启Redis才能生效)
redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码;所以密码要尽量长(对于DBA 没有必要必须记住密码);
2、不重启Redis设置密码:(建议使用这个)
在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。
redis 127.0.0.1:6379> config set requirepass 123
查询密码:
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
密码验证:
redis 127.0.0.1:6379> auth 123
OK
再次查询:
redis 127.0.0.1:6379> config get requirepass
- “requirepass”
- “123”
PS:如果配置文件中没添加密码 那么redis重启后,密码失效;
3、登陆有密码的Redis:
在登录的时候的时候输入密码:
redis-cli -p 6379 -a 123
先登陆后验证:
redis-cli -p 6379
redis 127.0.0.1:6379> auth 123
OK
AUTH命令跟其他redis命令一样,是没有加密的;阻止不了攻击者在网络上窃取你的密码。
密码设置完之后 重启redis
redis-server redis.conf
redis-cli -a 123
密码设置完后进行SpringBoot整合Reids
1.创建Springboot
主要安装红色框体内的web和nosql
配置application.properties
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址 (linux虚拟机的ip地址)
spring.redis.host=192.168.40.16
# Redis服务器连接端口
spring.redis.port=6379
#Redis服务器密码 (设置的reids密码)
spring.redis.password=123
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=5000
写测试连接
@Autowired
StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads() {
ValueOperations ops=stringRedisTemplate.opsForValue();
ops.set("userName","jerry");
Object name=ops.get("userName");
System.out.println(name);
}
启动test查看结果
清空redis缓存:
控制台结果:
查看redis缓存:
Ok,从上图可知SpringBoot整合redis已经没有什么问题。
总结:
主要是环境问题,所以配置redis的环境是非常有必要的。如果出现问题就进行步骤差错。