允许cache miss的场景,不管是memcache还是redis,当被缓存的内容变化时,是改修改缓存,还是淘汰缓存?这是今天将要讨论的话题。
问:KV缓存都缓存了一些什么数据?
答:
问:淘汰缓存中的这些数据,修改缓存中的这些数据,有什么差别?
答:
可以看到,差异仅仅在于一次cache miss。
问:缓存中的value数据一般是怎么修改的?
答:
结论:对于对象类型,或者文本类型,修改缓存value的成本较高,一般选择直接淘汰缓存。
问:对于朴素类型的数据,究竟应该修改缓存,还是淘汰缓存?
答:仍然视情况而定。
案例1:
假设,缓存里存了某一个用户uid=123的余额是money=100元,业务场景是,购买了一个商品pid=456。
分析:如果修改缓存,可能需要:
为了避免一次cache miss,需要额外增加若干次db与cache的交互,得不偿失。
结论:此时,应该淘汰缓存,而不是修改缓存。
案例2:
假设,缓存里存了某一个用户uid=123的余额是money=100元,业务场景是,需要扣减30元。
分析:如果修改缓存,需要:
为了避免一次cache miss,需要额外增加若干次cache的交互,以及业务的计算,得不偿失。
结论:此时,应该淘汰缓存,而不是修改缓存。
案例3:
假设,缓存里存了某一个用户uid=123的余额是money=100元,业务场景是,余额要变为70元。
分析:如果修改缓存,需要:
修改缓存成本很低。
结论:此时,可以选择修改缓存。当然,如果选择淘汰缓存,只会额外增加一次cache miss,成本也不高。
总结:
允许cache miss的KV缓存写场景:
任何脱离分析的技术方案都是耍流氓。
【本文为专栏作者“58沈剑”原创稿件,转载请联系原作者】
戳这里,看该作者更多好文
当前标题:缓存,究竟是淘汰,还是修改?
分享路径:http://www.mswzjz.cn/qtweb/news16/456116.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能