redis的三类问题
缓存穿透
一直查不存在的数据,透过缓存,一直查表
解决方案
缓存空值,没查到也存到redis中,但是缓存时间短一些
缓存雪崩
缓存同时失效,导致数据库库表在一瞬间被加大查询
解决方案
将不同商品缓存时间设置不同,热门商品设置的久一些,冷门短一些
redis的一致性问题
先删缓存,还是先写表?
b流程先写表,再删缓存
a流程在b删缓存之前,查了缓存
如何保证一致性呢
先更新数据库,在删缓存
如果想做进一步的一致
可以使用双删除策略,更新前删除一下,更新后删除一下