Redis默认持久化策略是RDB方式,数据丢失后首先去看了redis.conf文件,发现配置没问题,后来发现启动时日志有如下内容:
# 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.
问题找到了,内存不足的情况下,后台保存可能会失败。在/etc/sysctl.conf中另起一行添加vm.overcommit_memory=1即可,然后保存wq!,再执行sysctl -p
[root@xq-test001 etc]# sysctl -p
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.sysrq = 1
vm.overcommit_memory = 1
配置完成,往redis里添加了数据,重启后发现数据没有丢失,记录一下,以便日后忘记
来源:CSDN
作者:smile_miaomiao
链接:https://blog.csdn.net/smile_miaomiao/article/details/103935883