美文网首页程序员
关于使用分布式缓存的思考

关于使用分布式缓存的思考

作者: holysu | 来源:发表于2017-02-16 14:40 被阅读0次

    1. 何时用缓存? 加快数据返回 减轻db压力

     - 读操作远大于写操作

     - 依赖外部接口数据,但是其access能力差

     - 原始db数据需要经过复杂计算、耗时整理后才可使用

    2. 缓存是低可靠性的

    3. 注意点

     - 防雪崩: 所有key的超时时间增加随机尾数

     - 防穿透:拉模式获取为空时,塞入默认空值

    4. 更新策略

     - 考虑并发场景,线程直接写还是消息队列单写

     - 推模式

     - 拉模式

     - 推拉结合

    5. shadowdb:cache -> shadowdb, 讲shadowdb作为拉模式的数据源而不是原始数据源;缓存数据计算代价太大,采用job主动更新cache和shadowdb,不做拉操作

    6. 缓存数据源结构变化

     - 在原有缓存key上增减字段: 调整值的结构时需要注意已处于缓存的值和新值结构的兼容性;如 在product_1 产品key上新增一个vendor信息, 已缓存的信息上没有这个值的,会导致产品product_1在线上环境vendor为空,只能等待缓存过期或者下次push操作后才能获取到正确的值

     - 整个结构的变化: 这种就具有很大的破坏性了;如果key值不重新定义的话,不管怎么清理,线上缓存肯定有2种结构;

    相关文章

      网友评论

        本文标题:关于使用分布式缓存的思考

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