redis缓存的目的、场景、实现、一致性问题

文章目录

  • 1、加缓存的目的(作用):
  • 2、加缓存的场景:读多写少
  • 3、加不加缓存的标准:
  • 4、缓存的实现:
  • 5、缓存的实现方案:
  • 6、缓存的粒度问题
  • 7、缓存的一致性问题

专辑详情和声音详情属于并发量较高的数据,如果每次访问都实时到数据库获取数据,数据库的访问压力太大。而这些信息一般更新的频率比较低,短时间内不会发生改变。因此,我们可以考虑在前台系统中,增加一层缓存,把这些数据缓存起来,请求到来时,不再调用数据接口,而是直接读取缓存中的数据。

1、加缓存的目的(作用):

  1. 提高系统吞吐能力
  2. 提高并发:降低每一个请求的响应时间
  3. 保护数据库:大部分热门数据可以从缓存中命中并直接返回

2、加缓存的场景:读多写少

  1. 读的并发量大
  2. 写的频率低

3、加不加缓存的标准:

  1. 变化频率低
  2. 访问频繁

4、缓存的实现:

  1. redis:单线程,支持的数据模型更加丰富(常见5种),redis的性能瓶颈不是CPU计算,而是IO及网路带宽
  2. memcache:多线程,只支持kv结构(String数据结构)

5、缓存的实现方案:

  1. 编程式:SpringData-Redis、Jedis
  2. 声明式:SpringCache提供的一套注解

这里选择编程式方案。

实现步骤:

  1. 先查询缓存,如果缓存命中则直接返回
  2. 缓存没有命中,则查询数据库并放入缓存

6、缓存的粒度问题

粒度内存消耗可复用性可维护性
整个专辑详情页(ItemVo)
专辑整行(AlbumInfo)中等
部分字段(AlbumInfoVo)偏低偏低

7、缓存的一致性问题

mysql数据更新了,redis需要同步数据,需要数据同步

  1. 双写模式:写数据库,写缓存
  2. 失效模式:缓存失效(删除缓存),写数据库
  3. 双删模式:异步双删、延时双删、定时双删
  4. 中间件:maxwell、canal中间件

在这里插入图片描述

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

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

相关文章

SAP SUIM查到用户有事务码T-CODE权限,但是通过T-CODE查不到角色

类似于这种权限分配的方式,用事务码是查不到这个角色,但是通过SUIM查事务码的用户权限是可以查到的。 还有一种,是事务码给了*值.也会导致SUIM通过事务码查询角色,再通过角色查看用户,和通过用户查看有权限的事务码不一…

阿里巴巴发布 Qwen2-VL 人工智能模型,具备先进的视频分析和推理能力

中国阿里巴巴集团的云计算部门阿里云周四宣布推出一款名为 Qwen2-VL 的新型人工智能模型,该模型具有高级视觉理解能力和多语言对话能力。 该公司在 Qwen-VL 人工智能模型的基础上,历时一年研发出了新模型,并表示它可以实现对长度超过 20 分钟…

【书生3.5】茴香豆:企业级知识库问答工具

茴香豆:企业级知识库问答工具 1 简介2 web版使用3 本地版搭建3.1 环境安装3.2 模型准备下载源码安装依赖 3.3 修改配置3.4 知识库创建3.5 测试知识助手3.5.1 命令行运行3.5.2 可视化界面 3.6 集成飞书&微信群聊 4 高阶应用4.1 开启网络搜索4.2 远程模型远程向量…

10.8 信息安全基础知识

信息安全 存储安全 计算机信息系统安全保护等级 真题

Get full article in Google Sheet using Openai

题意:将整篇文章导入Google表格中,使用OpenAI。 问题背景: Im trying to get full article in Google Sheet using Openai API. In column A I just mention the topic and want to get full article in column B. 我正在尝试使用 OpenAI A…

chapter13-常用类——(包装类)——day15

目录 460-八大Wrapper类 461-装箱和拆箱 462-包装类测试 463-包装类方法 464-Integer创建机制 465-Integer面试题 460-八大Wrapper类 (面向对象里面最重要的就是继承关系,所以要进行梳理) 实现了了两个接口,继承了Object父…

2025年最新:如何用Java SpringBoot构建受灾救援物资管理系统,提升救援效率,掌握实时数据!

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

错误: 找不到或无法加载主类 App.class,Java文件是怎么编译的

App.java文件: 文件路径:D:\com\fdw\App.java 文件内容: package com.fdw; public class App {public static void main(String[] args) {System.out.println("apple");} } 注意: App.java 必须放在com\fdw目录下(包名要和目录一致),否则无法启动! 编译

CNN-LSTM用于时间序列预测,发二区5分+没问题!

为了进一步提高时序预测的性能,研究者们组合了CNN和LSTM的特点,提出了CNN-LSTM混合架构。 这种架构因为独特的结构设计,能同时处理时空数据、提取丰富的特征、并有效解决过拟合问题,实现对时间序列数据的高效、准确预测&#xff…

我的私有云-IOT定位/追踪系统

目录 1. 说明 2. 完成后的效果 2.1 实时定位 2.2 轨迹重现 2.3 设备美照 3. 项目设计 3.1 系统拓扑图​编辑 3.2 技术选型 3.3 消息订阅处理架构图 3.4 frp服务在线监控​编辑 4. 实施 4.1 数据模型 - DeviceLocation 4.2 数据报规格定义 订阅主题 数据报格式 …

【Qt】Qt 网络 | UDP Socket

文章目录 核心API代码示例服务器客户端 要使用 Qt 网络编程,需要在项目中的 .pro 文件中添加 network 模块 核心API Qt 的 UDP Socket 主要的类有两个 QUdpSocket 和 QNetworkDatagram 因为是 UDP 是面向数据报的,QNetworkDatagram 就是对 数据报的封…

ChatGPT写文章时,如何去除生硬的Ai味?

仅做分享,侵删 在使用AI进行写作时,常常会发现生成的文章带有明显的“机器味”,一眼就能看出是由AI生成的。这是许多希望借助AI进行自媒体创作的小伙伴们面临的一个主要问题。AI生成的文章往往过于书面化,缺乏人情味,导…

Xmind2024去除VIP会员解锁版

XMind 2024:让思维导图变得有趣又高效 🌟新功能大揭秘🌟 亲爱的小仙女们,今天我要给你们安利一款神奇的软件——XMind 2024!这不仅仅是一款普通的思维导图软件,它可是集美貌与智慧于一身的超级助手哦&…

【学习笔记】 陈强-机器学习-Python-Ch13 提升法

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-…

3674B/C/D/E/F/G矢量网络分析仪

3674B/C/D/E/F/G矢量网络分析仪 <<<3674系列矢量网络分析仪>>> Ceyear 3674系列矢量网络分析仪是技术创新的巅峰之作&#xff0c;可以轻松应对半导体芯片测试、材料测试、天线测试、高速线缆测试、微波部组件测试等带来的严峻挑战。出色的射频特性、灵活的硬…

提升多跳问答中的语言模型知识编辑能力

人工智能咨询培训老师叶梓 转载标明出处 大模型在静态知识库的更新上存在局限&#xff0c;特别是在面对需要多步骤推理的多跳问题时&#xff0c;难以提供准确和最新的回答。为了解决这一问题&#xff0c;来自美国佐治亚大学、纽约大学、莱斯大学、北卡罗来纳州立大学等机构的研…

案例-KVM+GFS分布式存储系统构建KVM高可用(虚拟化实战)

NFS GlusterFS 基于共享存储 采用GFS做共享存储&#xff1b; 实验环境&#xff1a;101 102 103 104 做gfs集群&#xff1b;201 202做虚拟机&#xff1b; 同步一下会话&#xff1b; 为了方便使用主机名进行通信&#xff0c;修改hosts文件&#xff1b; 为了使用GlusterFS的仓库…

机器学习引领未来:赋能精准高效的图像识别技术革新

图像识别技术近年来取得了显著进展,深刻地改变了各行各业。机器学习,特别是深度学习的突破,推动了这一领域的技术革新。本文将深入探讨机器学习如何赋能图像识别技术,从基础理论到前沿进展,再到实际应用与挑战展望,为您全面呈现这一领域的最新动态和未来趋势。 1. 引言 …

Python进阶07-高级语法

零、文章目录 Python进阶07-高级语法 1、with语句 &#xff08;1&#xff09;文件操作 文件使用完后必须关闭&#xff0c;因为文件对象会占用操作系统的资源&#xff0c;并且操作系统同一时间能打开的文件数量也是有限的 # 第一步&#xff1a;打开文件 f open(python.txt…

CAS理解和说明

目录 1.CAS是什么? 2.CAS的应用场景 2.1 实现原子类 2.2 实现自旋锁 3.CAS的典型问题:ABA问题 1.CAS是什么? CAS:全称compare and swap(比较并交换) 我们假设内存中的原始数据V&#xff0c;旧的预期值A&#xff0c;需要修改的新值B 1.比较A与V是否相等&#xff08;比较…