你可能不知道的redis

2019-08-26  本文已影响0人  LinkinStar

前言

以下是针对redis的知识点整理,用于复习,主要以罗列为主,详细具体讲解可以参考书《Redis设计与实现》,你可以过一遍看看有无知识点遗漏。个人能力有限,如果你还有补充可以再下方评论指出,万分感谢。

基础知识点

常用架构

应用场景

问题解决

缓存击穿

多次查询那些一定不存在的数据,或者当前数据不在缓存的高并发查询,导致巨大流量涌入数据库。
解决方式:

  1. 缓存空对象,如果可以缓存空对象,将空对象作为null缓存起来,让缓存强制命中(提前缓存或者惰性缓存均可)。存在问题:当空对象多时,浪费了缓存的空间。
  2. 利用布隆过滤器缓存出现过的key,保证不在过滤器里面的key一定不存在,布隆过滤器节省很多空间

缓存雪崩

情况一:多数类似缓存同时过期,导致对这些key的查询同时落到数据库。
情况二:缓存服务器直接挂掉,导致所有请求全部落到数据库,导致后续雪崩。
这里的解决方式就需要视情况而定:
情况一的话,可以尝试设置缓存过期时间为随机值,不让同类型缓存同时过期。
情况二的话,首先优先保证架构上面能压住,尽可能保证有redis的备份节点可以恢复,当然也要做planB,万一全部缓存节点全部挂,最前面网关层面要要做到限流,后续服务需要做降级或熔断,这个时候就不是缓存的问题了,就是架构的问题了。

上一篇 下一篇

猜你喜欢

热点阅读