redis执行失败后的处理

博客探讨了Redis执行失败的处理,包括网络问题、Redis故障及命令数据错误三种情况。在事务处理中,Redis不支持回滚,当命令失败时会继续执行后续命令,可能导致数据偏差。作者解析了Redis在事务执行过程中的两种错误情况,强调程序员应确保命令正确性,而Redis主要负责根据数据刷新内存。
摘要由CSDN通过智能技术生成

以前工作那会儿,总是在很纠结redis执行失败了怎么处理。最主要的是两个问题

  1. redis执行失败了怎么处理程序?
  2. redis事务中间有一条或者某几条数据执行失败了怎么处理?特别是redis事务,一直强调redis事务执行的时候不支持事务回滚,中间某一条命令执行失败后,后面的命令会继续执行,这导致我一直存在一个很大的疑惑,这不会导致数据偏差吗?比如一个事务三条语句,incr key三次,如果key初始值是1,incr key三次是得到的结果是4,如果有一次命令执行失败了,得到的结果就是3,这样存在的数据便宜,会导致问题都很难查找,就算找到了问题所在,要去实际生产环境种恢复数据都很麻烦,总不能先暂停生产环境,去恢复数据,然后再开系统吧。

今天认真思考了这两个问题,总结了一下redis的设计思路和执行失败后的处理,特别是第二种情况下的原因及处理。


对于问题1:

redis执行失败了怎么处理程序?

redis执行失败分两种情况,

  1. 网络问题,命令发送失败。
  2. redis本身故障导致访问不了。
  3. 命令或者数据不符合要求。

对于第一种情况和第二种情况,redis的连接一旦失败,系统不提供自动重连功能,这样的好处就是这一条连接故障,命令失败,不会导致突然又能连接上执行后面的命令,重连过程需要程序和运维来保障,不会引起数据错误。

对于第三种情况,命令或者数据不符合要求导致失败,redis的思维是把此问题抛给程序员,要在程序编写简单认真检查测试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值