缓存读写删除,要注意的几个点:

1  修改缓存时用删除,别用set,因为在特殊情况下会出现不一致

2 先改数据库再删除缓存

 

 并发写时,写操作1,写操作2过来,但是写缓存2先执行,再执行的缓存1,这样就会导致缓存的数据是旧的

!!!谈谈缓存不一致

什么时候会出现缓存一致

答:主从同步或者主主同步时。比如:修改操作过来时,在还没有同步到从库时,从库先收到了缓存的读请求,这时,缓存里面就会保存了旧数据

根本原因是由于数据库冗余必将引发数据不一致的问题

怎么解决???

答:1 异步法:记录到从库的写请求,然后启动一个异步任务,当从库收到写请求之后把此条数据的缓存给删除掉(这里怎么知道删除掉缓存的key呢)

2 服务法:我们估算出500ms,是主从同步的时间,那么去服务端删除缓存时,再发起一个延时500ms之后,再一次删除缓存的任务

 

 

 二:设置缓存key的失效时间

 

posted on 2020-11-05 15:53  一天的PHP之路  阅读(88)  评论(0)    收藏  举报