1.缓存雪崩:缓存挂了,全部请求直接打到数据库了redis
例如:redis挂了,查询数据的时候发现redis不可用,全部请求直接打到数据库了数据库
解决办法:1.缓存集群高可用,2首先本地一级缓存,其次redis二级缓存,最后数据库缓存
2.缓存击穿:全部请求在缓存中没有找到数据,直接打到数据库了队列
例如:查询数据的时候,发现redis中没有,再请数据库也没有的状况内存
解决办法:1.双重验证,2,将查询的空数据也写入到缓存中并设置一个过时时间集群
3.缓存一致性问题(内存+数据库)高可用
查询数据逻辑:先查缓存,缓存没有则查询数据库,将返回数据写入到缓存,并返回给调用方请求
修改数据逻辑:先删除缓存中数据,再插入或更新数据库数据
数据强一致性:读和写数据的逻辑放入队列中串行执行(代码已经实现,用于工做实战中了)查询