Redis实战案例4-缓存更新策略

news2024/11/23 20:38:45

1. 缓存更新策略

缓存中的数据一致性问题(数据库更新数据,而Redis存的是旧数据)
内存淘汰策略:当内存很充足时,很长时间无法淘汰数据,所以很难控制淘汰,一致性差;
超时剔除:取决于TTL大小,可以达到控制目的,但是在TTL时间内也可能存在数据库更新从而Redis中变成旧数据;
主动更新:也就是同时修改Redis和数据库的数据;

在这里插入图片描述

2. 主动更新策略

第二种:维护复杂,开发成本大;
第三种:维护异步任务难度大,要实时监控缓存中的变化;其次是一致性难以保证,如果缓存中已经存储了很多数据,但是还没有触发异步更新,这段时间内的缓存和数据库是不一致,当缓存宕机时,此时数据就会彻底丢失;

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

这里分析一下先操作缓存还是先操作数据库

  1. 先删除缓存,再操作数据库

正常情况:
在这里插入图片描述
异常情况(未加锁):这种情况出现的频率高

在这里插入图片描述

  1. 先操作数据库,再删除缓存

正常情况:
在这里插入图片描述
异常情况:这种情况出现的频率低,两个线程并行执行,且线程1查询缓存时恰好失效,同时查完数据库去写缓存,这里读写缓存的操作非常快。这时出现另一个线程2更新数据库,而数据库的读写操作较Redis缓存读写慢很多,所以数据库更新完毕之后再写缓存的概率极其低;
所以在概率的角度来选择也是先操作数据库,再删除缓存,并且可以再加一个超时剔除策略;

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/677646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教学类-36】Midjounery生成的四张图片切片成四张小图

作品展示: 把一张正方形图片的四个等大小图切割成四张图片 背景需求 最近在学习ChatGPT的绘画(midjounery AI艺术) 我想给中班孩子找卡通动物图片(黑白边框),打印下来,孩子们练习描边、涂色…

C++11-右值引用与移动语义

右值引用与移动语义 一,右值引用概念右值引用简单例子左值引用与右值引用的比较 二,右值引用的使用场景函数对于其内部局部对象的传值返回insert,push等接口左值引用与右值引用总结 三,完美转发四,新的类功能默认成员函…

【数据分享】1929-2022年全球站点的逐月平均海平面压力数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…

机器学习小结之决策树

文章目录 前言一、介绍1.1 原理1.2 流程1.3 信息熵,信息增益和基尼不纯度 二、构建决策树2.1 特征选择2.2 决策树生成2.3 剪枝 三、经典算法3.1 ID33.2 C4.53.3 CART 四、案例4.1 Iris 数据集 鸢尾花 分类4.2 基于决策树的英雄联盟游戏胜负预测 参考 前言 决策树(D…

GDPU 模电(电工) 作业答案

🍑 配套资源 📚 电子技术基础:电路与模拟电子[第2版] 提取码: 345r 第2章 电阻电路分析 第4章 正弦稳态电路分析 第6章 半导体器件 第7章 放大电路分析 第8章 负反馈放大电路 第9章 集成运算放大器及其应用 第11章 直流稳压电源 &#x1f6…

深度学习(10)之Roboflow 使用详解:数据集标注、训练 及 下载

Roboflow 使用详解:数据集标注、训练 及 下载 本文在 用YOLOv8推荐的Roboflow工具来训练自己的数据集 的基础上进行了修改 介绍如何从网站下载开源数据集详细介绍如何借助 roboflow 标注数据集并自动转换为可直接训练的数据格式 获取开源数据集 跳转找到开源分页…

浅谈Spring Cloud Gateway

网关:用户和微服务的桥梁 网关的核心是一组过滤器,按照先后顺序执行过滤操作。 Spring Cloud Gateway是基于webFlux框架实现,而webFlux框架底层则使用了高性能的Reactor模式通信框架的Netty Spring Cloud Gateway是Spring Cloud生态系统中的一个API网…

leetcode62. 不同路径(动态规划-java)

不同路径 leetcode62. 不同路径题目描述暴力递归代码演示 递归加缓存代码演示 动态规划代码演示 动态规划专题 leetcode62. 不同路径 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/unique-paths 题目描述 一个机器人位…

leetcode863. 二叉树中所有距离为 K 的结点(java)

二叉树中所有距离为 K 的结点 leetcode863. 二叉树中所有距离为 K 的结点题目描述 DFS 深度优先遍历代码演示 二叉树专题 leetcode863. 二叉树中所有距离为 K 的结点 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/all-…

英之剑法——第一境(通达人与物之境)

🌟博主:命运之光 ☀️专栏:英之剑法🗡 ❤️‍🔥专栏:英之试炼🔥 ☀️博主的其他文章:点击进入博主的主页 🐳 开篇想说的话:开学就大三了,命运之光…

永磁同步电机在线参数辨识综述

优点 实时性:在线参数辨识能够在电机实际运行时进行参数估计,可以实时地获取电机的参数信息。这使得在线参数辨识更适用于需要实时调节和优化电机控制策略的应用场景。 动态适应性:在线参数辨识可以根据电机的实时工作状态和环境变化来动态地…

最“赚钱”编程语言出炉,惊到我了.....

Stack Overflow 发布了 2023 年开发者调查报告,据称共计超过 9 万名开发者参与了此次调查。 完整报告包含了受访开发者画像,以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于开发技术和 AI 的部分。 懒人目录: 最流行编程语…

[皮尔逊相关系数corrwith]使用案例:电影推荐系统

协同过滤算法用于发现用户与物品之间的相关性,主要有两种:基于用户的和基于物品的。 基于用户: 用户1购买了物品A、B、C、D,并给了好评;而用户2也买了A、B、C,那么认为用户1和用户2是同类型用户&#xff…

hello算法笔记之堆

堆: 一种满足特定条件的完全二叉树,可分为两种类型: 「大顶堆 Max Heap」,任意节点的值 ≥其子节点的值;「小顶堆 Min Heap」,任意节点的值 ≤ 其子节点的值; 将二叉树的根节点称为「堆顶」&a…

p5模型详解

1.研究动机 推荐系统种类繁多,user、item特征集合可以共享,特定架构特定任务使得各任务间无法迁移。 语言可以描述万物,可以作为推荐系统的中间桥梁,受到prompt学习的影响,本文提出了text-to-text框架,称…

【openGauss数据库配置运行参数】--略有小成

【openGauss数据库配置运行参数】--略有小成 🔻 一、查看参数值🔰 1.1 使用SHOW命令查看🔰 1.2 使用pg_settings视图查看 🔻 二、openGauss的六类GUC参数🔻 三、重设运行参数🔰 1.3 重设参数的几种方式&…

5.0、Java_IO流 - IO流类的基本体系结构

5.0、Java_IO流 - IO流类的基本体系结构 Java 为我们提供了多种多样的 IO 流,我们可以根据不同的功能以及性能要求挑选合适的 IO 流; 下图为 Java 中 IO 流类的基本体系结构(这里只列举出一些常用的类,详情可以参考 JDK API 文档&…

闭门造轮(LVGL_1)

参考的课程: 全志韦东山的课程:https://www.100ask.net/p/t_pc/course_pc_detail/column/p_61c5a317e4b0cca4a4e8b6f1?product_idp_61c5a317e4b0cca4a4e8b6f1 例程1_// 基础对象(lv_obj),"Hello, LVGL!" void lvgl_demo(void) …

用平衡因子实现-AVL树

目录 AVL树的概念AVL树节点的定义AVL树的插入AVL树的旋转左单旋(parent->_bf 2 && cur->_bf 1)a,b,c当高度为0a,b,c当高度为1a,b,c当高度为2a,b,c当高度为...... 右单旋(parent->_bf -2 && cur->_bf -1)a,b,c当高度为0a,b,c当高度为1a,b,c当高…

UE5《Electric Dreams》项目PCG技术解析 之 基于关卡PCGSettings的工作流

程序化内容生成框架(Procedural Content Generation Framework,下文简称PCG)可谓是UE5.2版本中最令人瞩目的新技术之一,老王也是在第一时间就关注了这个技术,以前尝试过用Houdini来实现UE5中的程序化内容生成,感觉还是很蹩脚的,毕…