美文网首页
redis缓存问题

redis缓存问题

作者: 转过 | 来源:发表于2019-06-17 22:10 被阅读0次

    缓存更新策略

    1.lru/lfu/fifo - redis自带,根据maxmemory-policy设置,数据无法保证一致性

    2.超时剔除 - 设置expire,存在一定时间不一致问题

    3.主动更新 - 建议与超时剔除一起使用,一致性最好

    低一致性使用最大内存,超时剔除策略一起使用

    高一致性使用超时剔除和主动更新策略一起使用(避免主动更新出问题后缓存瘫痪)

    缓存粒度

    缓存粒度应适中,避免不必要内存,网络浪费(只缓存重要字段)

    缓存穿透

    1.缓存空对象(数据变化频繁场景)(缓存空间占用较多)

    2.布隆过滤器(数据变化小场景)

    无底洞优化

    更多的节点意味着更多的网络消耗,批量操作更耗时,当节点增加到一定程度,再增加节点并无法提高性能

    优化:

    1.命令优化

    2.减少网络次数

    3.降低连接成本(长连接,连接池,nio)

    缓存雪崩

    1.保证缓存高可用(sentinel、cluster)

    热点key问题 - p361

    2.高并发下缓存失效后多个线程同时申请建立缓存

    解决:

    1.互斥锁,同时只能有一个线程申请建立缓存(setnx锁),其它线程等待重新读。(保证缓存构建时间较短) 

    2.永远不过期(定期构建缓存)(重构期间数据不一致)

    相关文章

      网友评论

          本文标题:redis缓存问题

          本文链接:https://www.haomeiwen.com/subject/gpktqctx.html