当前位置: 首页 > news >正文

redis学习——七

redis缓存更新策略

在这里插入图片描述
业务场景:

  • 低一致性需求:使用内存淘汰机制,例如店铺类型的查询缓存
  • 高一致性需求:主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存
    读操作
    缓存命中则直接返回
    缓存未命中则查询数据库,并写入缓存,并设置超时时间
    写操作
    先写数据库,然后再删除缓存
    要确保数据库与缓存操作的原子性

主动更新策略中又有以下场景:

  • cache aside pattern:由缓存的调用者,在更新数据库的同时更新缓存
  • 缓存于数据库整合为一个服务,由服务来维护一致性,调用者调用该服务时,无需关心缓存一致性问题
  • 调用者只操作缓存。由其他线程异步的将缓存数据持久化到数据库,保证最终一致

一般企业中用的较多的为第一种,尽管需要调用者自己编码,但是可靠性更高点。

方案1中操作缓存和数据库时有三个问题需要考虑:

  1. 删除缓存还是更新缓存?
    更新缓存:每次更新数据库都更新缓存,无效写操作较多
    删除缓存:更新数据库时让缓存失效,查询时再更新缓存 ,这种更好

  2. 如何保护缓存与数据库的操作的同时成功或失败?
    单体系统:将缓存与数据库操作放在一个事务中
    分布式系统:利用TCC等分布式事务方案

  3. 先操作缓存还是先操作数据库
    先删除缓存,再操作数据库
    先操作数据库,再删除缓存 不过这种线程不一致的概率更小 因为:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


文章转载自:

http://HGmHCnD6.rpfpx.cn
http://KySPtk3Q.rpfpx.cn
http://TYXp2h18.rpfpx.cn
http://kJuH34og.rpfpx.cn
http://j6BgwIPn.rpfpx.cn
http://hv76mK4Y.rpfpx.cn
http://qZirE4Ub.rpfpx.cn
http://tkh9j3aY.rpfpx.cn
http://GlgsN5Im.rpfpx.cn
http://b9xIPNex.rpfpx.cn
http://MBco4rOx.rpfpx.cn
http://fcdq5v33.rpfpx.cn
http://u1T82eYu.rpfpx.cn
http://u65p5DPa.rpfpx.cn
http://agS8lazB.rpfpx.cn
http://vpUTwyHr.rpfpx.cn
http://c65IH8cT.rpfpx.cn
http://V0aR0N6l.rpfpx.cn
http://5UcInFjx.rpfpx.cn
http://hR6HwguO.rpfpx.cn
http://0uPx1M6P.rpfpx.cn
http://CFLRk6EZ.rpfpx.cn
http://RmCbpuaU.rpfpx.cn
http://3Odfib93.rpfpx.cn
http://bkhYB7yS.rpfpx.cn
http://ANaIjq4z.rpfpx.cn
http://ymr1Xz36.rpfpx.cn
http://2knzMuov.rpfpx.cn
http://jMEePFQK.rpfpx.cn
http://UC65JbhE.rpfpx.cn
http://www.dtcms.com/a/371341.html

相关文章:

  • nginx反向代理不转发静态文件的解决办法
  • Webassemly和声明宏的联合使用
  • 选拔考试复现
  • 【Linux】 进程控制
  • C++ 连接 Redis:redis-plus-plus 安装与使用入门指南
  • K8s访问控制(二)
  • PerfTest:轻量高性能压测工具,兼容 HTTP/1/2/3、WebSocket,并带实时监控
  • 【Linux基础】fdisk命令详解:从入门到精通的磁盘分区管理完全指南
  • 【从零开始学习Redis】秒杀优化——阻塞队列、消息队列实现异步秒杀
  • 【基于深度学习的中草药识别系统】
  • AI 驱动数据分析:开源 SQLBot 项目探索,基于大模型和 RAG 实现精准问数与图表挖掘
  • 延迟 队列
  • 宋红康 JVM 笔记 Day14|垃圾回收概述
  • 【ICCV2025】计算机视觉|即插即用|ESC:颠覆Transformer!超强平替,ESC模块性能炸裂!
  • 手机能看、投屏 / 车机不能看与反向链接验证类似吗?
  • Xilinx ZYNQ 开发环境中搭建 Qt 环
  • leetcode909.蛇梯棋
  • JAVA NIO学习笔记基础强化学习总结
  • 基于51单片机手机无线蓝牙APP控制风扇调速设计
  • 力扣hot100:相交链表与反转链表详细思路讲解(160,206)
  • 如何在 DevOps 管道中实现 AI?
  • 【Java基础07】面向对象进阶
  • 动态维护有效区间:滑动窗口
  • 桌面时间 Catime
  • 解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
  • 设计模式:状态模式(State Pattern)
  • 【ARM基础知道】
  • SpringCloud Alibaba微服务--Gateway使用
  • 基于脚手架微服务的视频点播系统-播放控制部分
  • 【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治