Redis和Mysql如何保证数据一致性?
1、redis作用:
用于读数据库操作的缓存层,可以减少数据库的io,还能提升数据的io性能;
无法保证数据的acid
2、实现一致性方案:
要想保证强一致性就需要加锁,得不偿失了,保证最终一致性就好。
延迟双删方案是不对的,因为需要延迟几百毫秒,对于高并发系统是致命的,答了这种方案就直接挂了。
1、先更新数据库,在更新缓存
2、先删除缓存再更新数据库
3、最终一致性方案:
(1)基于roketMQ可靠通信
(2)通过canal组件采集mysql binlog日志,同步redis