问题描述:springboot连接redis,隔几分钟就断开,连接失败,等个几秒钟在连接就又可以了
第一个警告:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
第二个警告:overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to/etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
第三个警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain thesetting after a reboot. Redis must be restarted after THP is disabled.
第一个和第二个警告,修改linux服务器上配置文件,/etc/sysctl.conf
新增两个属性,下图
保存,退出,执行sysctl -p 生效配置
第三个警告处理:将echo never > /sys/kernel/mm/transparent_hugepage/enabled
添加到/etc/rc.local中
然后执行source /etc/rc.local生效配置
报错4,MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
编辑redis.conf文件,把里面stop-writes-on-bgsave-error = no
此时改完服务器上的报错,在测试redis连接,如果还是隔几分钟就断开,就开始找代码的原因:
原配置文件
现在配置文件:
原先是自动装载配置文件,RedisTemplate自动集成RedisConnectionFactory属性,RedisConnectionFactory会自动读取配置yml文件的内容,所以思路是自定义对象RedisConnectionFactory新增一些属性
然后用手动生成的RedisConnectionFactory对象生成RedisTemplate即可