码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • redis探索之常用的三种缓存读写策略


            使用 Redis常见的缓存读写策略有三种分别是:旁路缓存,读写穿透和异步缓存写入。

            首先,三种策略并没有高低之说,只是侧重点不同。接下来我给大伙挨个讲一讲。

    旁路缓存(Cache Aside Pattern)

            服务端同时维护Mysql和Redis,并且以Mysql的主要存储。

            策略规定在查数据时,先从Redis中读。如果Redis中没有,再从Mysql中读取,并将结果返回。再写入Redis,避免下次读取依然查不到。

            策略规定在写数据时,先写Mysql,再删除Redis。

            旁路缓存是最为广泛应用的一种读写策略。当然,这个策略也不是完美的,也会存在一致性问题。 

     

    读写穿透(Read Write Through Pattern)

            策略视Redis为主要存储。

            策略规定在读数据时,先从Redis中读。读到直接返回。没有读到就从Mysql中读取数据放入到Redis中后,再返回数据。

            策略规定在写数据时,先看Redis中是否存在该数据,存在则先更新换,再更新数据库。

     

            我觉得该策略存在两个问题:① 读数据时先更新缓存再返回结果会降低查询接口的处理速度,② 写数据时先更新缓存可能会导致缓存一致性问题。 

    异步缓存写入(Write Behind Pattern)

            这种策略是三种策略中最少出现在项目中的。跟读写穿透策略有些许类似,他们都是以Redis作为主战场。区别是读写穿透直接更新数据库,而该策略选择集中同步到Mysql数据库。策略存在一个较大的风险,如果缓存服务挂掉了,就容易出现不一致的情况。

            有两个比较著名应用场景:消息队列中消息异步写入磁盘和InnoDB的Buffer Pool。这两个场景都是关于持久化的。

    缓存读写策略与延迟双删是什么关系?

            不知道有多少小伙伴有这种疑问。但至少作为初学者的我,刚看到这块的时候,是有这个疑问的。因为缓存读写策略要解决缓存一致性问题,延迟双删也是要解决缓存一致性问题。然后其实这个问题很简单,我们大多数使用的是旁路缓存策略,但是旁路缓存策略在很多情况还是会存在一致性问题。为了解决这个问题,就出现了延迟双删策略。延迟双删是对旁路缓存的一个优化。

            这个对知识融会贯通的过程也对我很有益,特此记录一下。

  • 相关阅读:
    JVM - 你们垃圾回收器用的什么? G1有哪些特点?G1如何实现可预测的停顿时间?漏标问题如何解决的?介绍下三色标记?说说STAB 算法 ?
    生产环境下调试的技巧
    JS基础
    【C++基于多设计模式下的同步&异步日志系统】
    【数据结构&C++】二叉平衡搜索树-AVL树(25)
    #[量化投资-学习笔记018]Python+TDengine从零开始搭建量化分析平台-正态分布与收益率
    k8s集群Job负载 支持多个 Pod 可靠的并发执行,如何权衡利弊选择适合的并行计算模式?
    跨境电商背景下,DolphinScheduler 在 SHEIN 的二开实践
    pdf导出工具类
    虚拟机开启网络代理设置
  • 原文地址:https://blog.csdn.net/qq_22156459/article/details/126460523
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号