我是靠谱客的博主 无私大门,最近开发中收集的这篇文章主要介绍Redis缓存一致性问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 前言
    • 先更新数据库,再更新缓存
      • 一、线程安全问题
      • 二、使用场景问题
    • 先删缓存,再更新数据库
      • 一、问题
      • 二、延时双删策略
    • 先更新数据库,再删缓存
      • 问题

前言

从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后更新缓存。
因此,接下来讨论的思路不依赖于给缓存设置过期时间这个方案。

先更新数据库,再更新缓存

一、线程安全问题

假设同时有请求A和请求B进行更新操作,那么会出现如下情景

  1. 线程A更新了数据库
  2. 线程B更新了数据库
  3. 线程B更新了缓存
  4. 线程A更新了缓存

最后

以上就是无私大门为你收集整理的Redis缓存一致性问题的全部内容,希望文章能够帮你解决Redis缓存一致性问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部