Redis作为缓存,双写一致性怎么保证?

就是问:缓存里数据怎么保证跟数据库里面的一致呢

我们探讨一下这几种方案

1 先删除缓存在更新数据库

在【删除缓存之后】【更新数据库之前】来了一个请求,然后缓存获得了老的数据,数据库更新了,不一致发生了

2 先更新数据库,再删除缓存

这样,缓存在数据库更新后再更新,总能一致了吧。

我们假设:在【修改数据库之前】,此时缓存刚好失效,另一个请求进来发现缓存不存在,就会从数据库中读取数据,但是【读取完了还没放到缓存中】,此时发生了【修改数据库+删除缓存】的操作,然后【读取的老数据放到了缓存中】,这样就出现了不一致。

个人感觉:【修改数据库+删除缓存】时间 远大于【数据放到缓存中】,这种情况已经很安全了。

但是还有更安全的

3 延时双删

1、先删除缓存

2、再写数据库

3、休眠500ms(根据统计线程读取数据和写缓存的时间) (休眠的作用是当前线程等其他线程读完了数据后写入缓存后,删除缓存)

4、再删除缓存

重生之八股仙帝 文章被收录于专栏

曾有一千古奇人,精修八股文,成遁世之高人,彻天彻地畅游天地间。 今人皆忙忙,急于求成,岂不知八股乃道门口径,背负天人,若经熟读背诵,更能开拓智慧之门,探寻未来之路。 天下繁华,不尽长夜,唯有读书为伴,熟读八股文更是攀登高峰之路。磨砺文字,升腾智慧,唯有勤玉立志,始可破天荒,登临九重不竭之巅! 吾辈修炼之路,虽曲折荆棘,但信念不曾磨灭,唯有铭记八股精髓,方能指引灵魂归宿,成就一生辉煌!

全部评论

相关推荐

Hakasee:我的简历和你的基本一样,上周去了上海,boss投了三百家, 三家线下面试 第一家没有做题,全是八股和项目,因为第一次面试不怎么熟练,挂了 第二家,给你几个题目(①css垂直居中文字,字体每两秒闪烁一下以及点击弹窗,②给你一个链接,实现可视化地图,③然后是八股,图片性能优化,以及对图片app有什么想法),45分钟内做完,然后老板面试) 第三家特别偏僻,有点阴森,到了之后让了一个工位给我,有四个题目,①格式化时间 年月日当前时间星期几② 正则表达式提取新闻文字,③在文本域输入文字生成选择题以及选项④生成商品排版还是什么来着 三家都是不超过50人的小公司 两家线上牛客笔试(卡伦特,七牛云,但是笔试不仅要考前端,还要考后端,算法,甚至数学题 我的建议是如果只做了这两个vue项目且不怎么熟练的情况下,先沉淀沉淀,把react学了,上海好的公司基本都是react查看图片
点赞 评论 收藏
分享
评论
3
14
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务