redis无法进行读写

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34193883/article/details/87873478

redis无法进行读写

问题描述

远程访问reids显示无法链接,通过服务器本地登录,可以进入界面,但是无法进行读写操作,报错信息如下:

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

查找原因

查看reids错误日志:
2473:M 22 Feb 10:14:20.075 * 1 changes in 900 seconds. Saving…
2473:M 22 Feb 10:14:20.076 # Can’t save in background: fork: Cannot allocate memory

查询文件得知是因为在存储数据时,redis进行硬盘读写时出的错

我查询了下硬盘的存储,只用了百分之五,所以不是硬盘的问题。
然后查看内存的问题,发现4G的内存,已经用了3.5G了,只空闲300M

解决问题

  1. 首先用存储方式变更解决问题,这是网上查到的大部分文章使用的方法,就是关闭数据存储时关于快照的存储:
config set stop-writes-on-bgsave-error no

问题是,关闭了快照的存储,数据出现问题后,恢复困难。

  1. 其次是增加内存,彻底解决问题

备注

关于stop-writes-on-bgsave-error参数的描述:

#默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,
#这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,
#否则就会没人注意到灾难的发生。
#如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。
#然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
stop-writes-on-bgsave-error yes

猜你喜欢

转载自blog.csdn.net/qq_34193883/article/details/87873478