redis数据更新操作

本文探讨了Redis数据更新与数据库一致性问题,建议避免直接在Redis中更新数据,推荐先更新数据库再删除缓存。提到使用乐观锁解决脏数据问题,但可能增加系统复杂性。在读多写少且对数据准确性要求不苛刻的场景下,推荐使用Redis。建议通过设置较短的缓存过期时间或补偿策略来处理脏数据。
摘要由CSDN通过智能技术生成

redis的数据更新尝尝涉及到和数据库的数据一致性的问题的。最有效的redis数据库一致性的操作方式是如下的:
强调一点,redis不要直接做数据更新方案,存在问题的。redis不要直接对缓存数据执行更新操作。
1.先更新数据库;
2.删除缓存;
3.当再次查询的时候,查询缓存重建缓存就可以了;
上面还是存在一个缓存脏数据的问题的。可以使用乐观锁的方式来解决问题的。
下面是解决问题的整个的流程的:
在这里插入图片描述
上面的操作还存在一个问题的:
1.当更新数据库成功了,但是删除缓存数据失效了。这个时候可以使用kafka的方式来补偿删除redis的数据的。
这种情况下是这样的流程图的,可以采用定于mysql的binlog的方式来实现补偿消费订阅的。当时还是存在一个问题的。在补偿消费消费的期间,读取的缓存的数据还是脏数据的。
在这里插入图片描述
但是这样的话,会导致系统的复杂性大大的增加的。不是一个很好的方案的。是否需要为了一个错误的使用增加诸多的措施来保证完善了,我觉的是没有必要的。需要结合系统的特性来选择的。
对于那种要求实时性和准确性特别强的情况下,不建议使用redis来实现相关的操作的。能够使用redis的地方的话,肯定是那种能够允许存在数据不一致的地方的,因为redis的目标是保证最终一致性的。所以的话,对于读多写少的场景的话,推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值