缓存雪崩问题,缓存击穿问题,缓存一致性问题(内存+数据库)

1.缓存雪崩:缓存挂了,所有请求直接打到数据库了

例如:redis挂了,查询数据的时候发现redis不可用,所有请求直接打到数据库了

解决办法:1.缓存集群高可用,2首先本地一级缓存,其次redis二级缓存,最后数据库

2.缓存击穿:所有请求在缓存中没有找到数据,直接打到数据库了

例如:查询数据的时候,发现redis中没有,再请数据库也没有的情况

解决办法:1.双重验证,2,将查询的空数据也写入到缓存中并设置一个过期时间

3.缓存一致性问题(内存+数据库)

查询数据逻辑:先查缓存,缓存没有则查询数据库,将返回数据写入到缓存,并返回给调用方

修改数据逻辑:先删除缓存中数据,再插入或更新数据库

数据强一致性:读和写数据的逻辑放入队列中串行执行(代码已经实现,用于工作实战中了)

posted @ 2019-07-20 09:30  麻雀虽小五脏俱全  阅读(423)  评论(0编辑  收藏  举报