1.强一致性
使用redission的读写锁保证双写一致性
读锁阻塞写不阻塞读
写锁阻塞读和写
写锁为什么会阻塞读写呢?
底层用的是setnx同一时间只能有一个线程拥有这把锁
2.弱一致性
canal异步通知(canal伪装成mysql从节点,当mysql数据发生变化时canal监听数据变化,更改redis数据)
异步通知保证数据最终一致性
延迟双删达到最终一致性,修改数据前删除缓存,修改完数据,给mq发送延迟消息(保证主从同步完成)再删一次缓存
1.强一致性
使用redission的读写锁保证双写一致性
读锁阻塞写不阻塞读
写锁阻塞读和写
写锁为什么会阻塞读写呢?
底层用的是setnx同一时间只能有一个线程拥有这把锁
2.弱一致性
canal异步通知(canal伪装成mysql从节点,当mysql数据发生变化时canal监听数据变化,更改redis数据)
异步通知保证数据最终一致性
延迟双删达到最终一致性,修改数据前删除缓存,修改完数据,给mq发送延迟消息(保证主从同步完成)再删一次缓存