redis的数据更新尝尝涉及到和数据库的数据一致性的问题的。最有效的redis数据库一致性的操作方式是如下的:
强调一点,redis不要直接做数据更新方案,存在问题的。redis不要直接对缓存数据执行更新操作。
1.先更新数据库;
2.删除缓存;
3.当再次查询的时候,查询缓存重建缓存就可以了;
上面还是存在一个缓存脏数据的问题的。可以使用乐观锁的方式来解决问题的。
下面是解决问题的整个的流程的:

上面的操作还存在一个问题的:
1.当更新数据库成功了,但是删除缓存数据失效了。这个时候可以使用kafka的方式来补偿删除redis的数据的。
这种情况下是这样的流程图的,可以采用定于mysql的binlog的方式来实现补偿消费订阅的。当时还是存在一个问题的。在补偿消费消费的期间,读取的缓存的数据还是脏数据的。

但是这样的话࿰

更多推荐

redis数据更新操作