Redis缓存设计原则

 

  • 缓存热数据
  • 缓存读写顺序:读,先缓存,后数据库;写,先数据库,后缓存
  • 所有缓存数据都应该设置过期时间
  • 缓存的过期时间应该避免集中过期,造成缓存击穿
  • 缓存key具备可读性,应避免不同业务出现同名的key,简单缩写可节省内存空间
  • 避免缓存穿透,数据库中查不到的数据,可在Redis中设置空值,以避免缓存无数据而每次达到数据库
  • 缓存预热,上线之前可预先将数据写入缓存中
  • 数据一致性问题,根据业务需求选择合适的缓存更新策略:
    • 主动更新:在数据源发生变化时同步更新缓存。一致性高,维护成本较高
    • 被动删除:设置过期时间。一致性较低,维护成本低
  • 缓存雪崩问题,缓存由于某些原因不能提供服务,
    • 保证缓存服务高可用
    • 服务限流并降级
    • 提前演练缓存挂掉后出现的问题
  • 热点数据问题,当一个热点数据并发量非常大,缓存失效瞬间,大量线程重建缓存,造成数据源压力加大
    • 互斥锁:只允许一个线程重建缓存,其他线程等待执行完再从缓存获取。如果出现问题,可能会导致死锁
    • 永不过期,定期构建缓存;在特殊情况下数据源发生变化,会导致数据不一致
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值