1.redis缓存过期

redis 数据少可以设置超时时间  

redis 数据多单单设置超时时间 还不够 需要进行全盘扫描 时间太久 所以需要另外机制 redis 淘汰策略

2.内存淘汰策略

  • noeviction:返回错误,不会删除任何键值

  • allkeys-lru:使用LRU算法删除最近最少使用的键值

  • volatile-lru:使用LRU算法从设置了过期时间的键集合中删除最近最少使用的键值

  • allkeys-random:从所有key随机删除

  • volatile-random:从设置了过期时间的键的集合中随机删除

  • volatile-ttl:从设置了过期时间的键中删除剩余时间最短的键

  • volatile-lfu:从配置了过期时间的键中删除使用频率最少的键

  • allkeys-lfu:从所有键中删除使用频率最少的键

 

有了上述两种 可以解决内存占满的情况

缓存穿透情况

请求一些不存在的数据 因为redis 不存在 所以经常查询数据库 

解决缓存穿透的情况

用redis的布隆过滤器 : 

特点

说不存在一定不存在 

对布隆过滤器的理解 可以参考 这个博客

https://www.cnblogs.com/xzqpy/p/12007020.html

 

缓存击穿 && 缓存雪崩

 

缓存击穿:redis这个数据刚好过期 还没来得及缓存 之后大量请求这个数据 

缓存雪崩 :redis这批数据刚好同时过期 还没来得及缓存 之后大量请求这批数据 

 

解决缓存击穿 && 缓存雪崩

随机设置数据超时时间 不要用固定值

设置了热点数据永不过期

 

posted on 2021-02-20 16:32  谢Rain  阅读(249)  评论(0编辑  收藏  举报