Redis - Cache

缓存过期

set key expire time

缓存淘汰

delete expire key

noeviction:返回错误,不会删除任何键值
allkeys-lru:使用LRU算法删除最近最少使用的键值
volatile-lru:使用LRU算法从设置了过期时间的键集合中删除最近最少使用的键值
allkeys-random:从所有key随机删除
volatile-random:从设置了过期时间的键的集合中随机删除
volatile-ttl:从设置了过期时间的键中删除剩余时间最短的键
volatile-lfu:从配置了过期时间的键中删除使用频率最少的键
allkeys-lfu:从所有键中删除使用频率最少的键

缓存穿透

查询缓存没有命中,直接query数据库

解决方案:

缓存击穿

刚刚有一个热点数据到了过期时间,被删掉了,不巧的是随后就有对这个数据的大量查询请求来了,导致数据库大量压力

缓存雪崩

一大批同时发生的缓存击穿

解决方案:

参考

Fork me on GitHub