安装好的redis每过一段时间的会出现连接不上的情况

最近使用了redis做一个缓冲的数据库,但是每过一段时间之后,都会实现连接不上的情况,但是使用telnet是能连接到redis的端口的,而且在本地中是可以通过redis-cli连接上reids。 通过在cli中使用ping命令,结果报出一下错误:

(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

 

译: Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请查看Redis日志的详细错误信息。

 

原因: 强制关闭Redis快照导致不能持久化。

 

查看网上的解决方案为:修改redis-conf配置文件中的 stop-writes-on-bgsave-error 为 no

 

但是修改之后,过了一段时间还是为报出原来一样的错误,后来查看redis-server开启时,已经出现了错误信息:

WARNING 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.

原因是内存不足,(开始看这条报错信息时我用free -m查看了系统的内存使用量,发现还剩800多M的内存,以为不是内存的问题,后来发现,redis保存数据导硬盘上面时,会复制同样大小的进程来专门保存数据,就是说如果redis主进程占了400M的内存,那么复制时就需要800M )

 

解决方案提示里面已经给出:修改/etc/sysctl.conf 中vm.overcommit_memory 的值为 1,再使用sysctl -p使修改生效,然后重启redis

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值