redis进行set操作时异常总结

事情经过:项目中使用redis,环境进行过一次网络迁移,之后就无法拿到redis连接。

                1、先通过ping命令排除网络原因,其实这里建议使用 telnet 命令:格式 telnet ip port,不仅能排查网络是否连通并且知道改端口号是否能脸上,以上的port指的是redis的端口号。

                 以上结论是ping能ping通,但telnet无法连接,说明端口号的redis应用有相应的类似ip白名单需要修改,由于是运维进行更改的,这里不进行细说。

                 2、在一阵配置后telnet终于可以连通了,发现还是拿不到redis连接,而且展示在服务器端的异常和不能连通时的异常一样,通过ssh连接到redis所在的服务器,并通过redis-cli -h ip -p port 连接到对应的redis中,使用get操作,keys操作都没有问题,只有进行set操作时抛出异常如下:

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-cli登录到对应的redis中,设置 命令如下:

config set stop-writes-on-bgsave-error no

这样就解决了无法写入的问题。

若以上分析仍不能解决你的问题,可以查看这篇由于redis占用内存太大引起相关错误:https://yq.aliyun.com/articles/629296

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值