Redis 缓存预热、预热数据选取策略、缓存保温、性能边界

news/2024/5/17 15:59:02

缓存预热

  • 热点数据预热:根据业务分析或统计数据,确定热点数据(经常被访问的数据),并将其提前加载到Redis缓存中。可以根据访问频率、访问量或其他业务指标来确定热点数据。
  • 定时预热:可以设置定时任务,周期性地预热Redis缓存。根据业务需求和数据访问模式,可以选择在低峰期或非活动时间段进行预热,以避免对实时请求的影响。

缓存预热可能会导致系统启动时间延长或对底层数据源造成额外的负载。因此,在进行缓存预热时,需要综合考虑系统的性能、可用性和数据更新的实时性要求。

预热数据选取策略

  • 基于历史数据:通过分析历史的数据访问模式和统计信息,确定最常被访问的数据。可以根据数据的访问频率、热度、关联性等指标进行排序,选择前几个数据集进行预热。
  • 基于业务需求:根据业务特点和需求,选择与当前业务操作相关的数据进行预热。例如热门商品、促销商品数据。
  • 基于预测模型:利用机器学习或其他预测模型,预测未来一段时间内可能会被访问的数据。根据预测结果选择相应的数据进行预热。
  • 基于用户行为:如果你的系统有用户登录或个性化功能,可以根据用户的历史行为和偏好,选择与其相关的数据进行预热。

要综合考虑以上不同策略,根据业务需求和数据特点,选择合适的预热数据。可以根据不同的时间段、用户群体或其他因素,采用不同的预热策略。

缓存保温

  • 定期刷新:定期刷新缓存中的数据,以确保数据保持最新和热门。可以设置一个定时任务,周期性地刷新缓存中的数据,使其保持最新状态。
  • 主动加载:在系统启动后或在低峰期,通过后台任务或初始化过程,主动加载缓存中的数据。可以预先加载一些常用的数据或热点数据到缓存中,以满足后续请求的需求。
  • 热点数据保护:根据业务分析或统计数据,确定热点数据(经常被访问的数据),使用合适的缓存策略或设置适当的过期时间,以保持热点数据的持续可用性。

缓存保温也需要权衡系统资源的利用和数据的实时性,避免过度保温导致资源浪费或过时数据的使用。

性能边界

在这里插入图片描述
基于上面的性能边界,我们需要根据自身的业务特性和需求来做一些选择和妥协
80%的业务总是集中在20%的数据上面

RMQ工作流

在这里插入图片描述

Redis一些实战建议

  1. 采用合适的淘汰机制:根据业务需求和数据特点,选择合适的淘汰策略,如 LRU(最近最少使用)、LFU(最近最不常用)或随机淘汰。
  2. 优化数据结构:根据数据的特点和访问模式,选择合适的数据结构,以减少数据冗余和内存占用。
  3. 持久化策略:选择适当的持久化机制,如快照(RDB)和日志(AOF)。定期备份 Redis 数据,以防止数据丢失或意外故障。
  4. 启用数据压缩:对于适合压缩的数据类型(如字符串类型),使用 Redis 提供的压缩功能,减少内存占用。
  5. 定期维护:进行定期的 Redis 维护活动,如清理过期数据、优化索引和重建数据结构等。
  6. 性能测试:进行压力测试和性能测试,评估 Redis 在高负载和大数据量下的表现,识别潜在的性能瓶颈和瓶颈原因,并采取相应的措施进行性能调优和优化。

http://www.mrgr.cn/p/75030203

相关文章

Google搜索技巧

来源:零度解说 附加:深度精简 Edge浏览器! 1、以图搜片2、搜索特定文件类型 比如要搜索GPT-4来搜索相对应的PDF奇数文档,后面只需要跟上“文件类型 + :pdf”通过这种方法可以搜索任何文档,只需要在某好后面加上文档后缀就可以了。通过这种方法可以快速定位到我们需要的电影…

每帧纵享丝滑——ToDesk云电脑、网易云游戏、无影云评测分析及ComfyUI部署

目录 一、前言二、云电脑性能测评分析2.1、基本配置分析2.1.1、处理器方面2.1.2、显卡方面2.1.3、内存与存储方面2.1.4、软件功能方面 2.2、综合跑分评测 三、软件应用实测分析3.1、云电竞测评3.2、AIGC科研测评——ComfyUI部署3.2.1、下载与激活工作台3.2.2、加载模型与体验3.…

python中中英文打印对齐解决方案

在python中,有时候会出现中英文混合输出的情形,但是由于中文默认是全角格式(一个中文字符占用两个字符宽度),这会对python原生的print函数带来一些障碍。尤其是用户用print对齐输出的时候,这种差异会导致文…

Linux知识

基础 Linux系统的组成 Linux内核、Linux⽂件系统、Linux shell、Linux应⽤程序。 Linux的开机启动过程 u-boot是⼀款常⽤的开源Bootloader,它的启动顺序如下: CPU上电后,⾸先执⾏boot ROM(引导ROM)代码。boot ROM…

Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术

Java全套智慧校园系统源码springbootelmentui Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术 智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园…

Nacos的一些高级功能

【BV1q3411Z79z】zhouyu:临时实例和持久实例,保护阈值,权重,NacosRule配置权重,Cluster就近访问高级功能 临时实例和持久实例 默认情况下,注册给Nacos的实例都是临时实例 临时实例:会通过客户端与服务器之间的心跳来保活,默认情况下客户端每隔5s发送一次心跳 public st…

【每日刷题】Day7

【每日刷题】Day7 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 206. 反转链表 - 力扣(LeetCode) 2. 203. 移除链表元素 - 力扣(…

Jmeter 测试Dubbo接口-实例

1、Dubbo插件准备 ①把jmeter-plugins-dubbo-2.7.4.1-jar-with-dependencies.jar包放在D:\apache-jmeter-5.5\lib\ext目录 ②重新打开Jmeter客户端 在线程组-添加-取样器-dubbo simple,添加dubbo接口请求 2、Jmeter测试lottery接口 ①配置zookeeper参数 由于dub…

重生之我在男航学Java-1

一、前言第一次题目集主要是让我们熟悉对类的使用和对单一职责的理解,由于给出了设计建议,并且内部给出了具体的设计分析,第一次PTA的题量大但是难度并不是很大,虽然老师说了可以使用正则表达式,但我由于自身的懒惰附加c语言面向过程的思想根深蒂固,我在第一次PTA中并未使…

PHP 安装开启redis扩展

方法1,通过pecl 安装 pecl install redis 方法2, 源码编译安装 github地址 https://github.com/phpredis/phpredis/blob/develop/INSTALL.md 也可以参考菜鸟教程 https://www.runoob.com/redis/redis-php.html 安装完成后重启php-fpm 或 apache。查看phpinfo信息,就能看到redi…

datawhale-动手学图深度学习task03

动手学图深度学习 声明:本文是在笔者的Pytorch tutorial及深度学习入门(鱼书)笔记的基础上继续学习记录,故有些内容略过。 第三章:深度学习基础 神经网络及其基本组成的补充欠拟合: 训练误差和验证误差都很严重,而且他们间仅有一点差距,如果模型不能降低训练误差,这可能…

23201115-邓俊豪的第一次blog

目录PTA三次大作业前言关于难度和题目量关于知识点设计与分析第一次大作业题目我的代码分析报告第二次大作业题目我的代码分析报告第三次大作业题目N:1 #Q:1+1= #A:2N:2 #Q:2+2= #A:4T:1 1-5 2-8X:20201103 Tom-20201104 JackS:1 20201103 #A:1-5 #A:2-4D:N-2N:1 #Q:1+1= #A:2T…

bilibili PC客户端架构设计——基于Electron

众所周知,bilibili是个学习的网站,网页端和粉版移动端都非常的好用,不过,相对其它平台来说bilibili的PC客户端也算是大器晚成了。在有些场景PC客户端的优势也是显而易见的,比如,跓留电脑桌面的快捷、独立的…

如何将 ASP.NET Core MVC 项目的视图分离到另一个项目

如何将 ASP.NET Core MVC 项目的视图分离到另一个项目 在当下这个年代 SPA 已是主流,人们早已忘记了 MVC 以及 Razor 的故事。但是在某些场景下 SSR 还是有意想不到效果。比如某些静态页面,比如追求首屏加载速度的时候。最近在项目中回归传统效果还是不错。 有的时候我们希望…

Scala 03 —— Scala Puzzle 拓展

Scala 03 —— Scala Puzzle 拓展 文章目录 Scala 03 —— Scala Puzzle 拓展一、占位符二、模式匹配的变量和常量模式三、继承 成员声明的位置结果初始化顺序分析BMember 类BConstructor 类 四、缺省初始值与重载五、Scala的集合操作和集合类型保持一致性第一部分代码解释第二…

2001-2022上市公司数字化转型数据(含原始数据+计算代码+计算结果)

2001-2022上市公司数字化转型数据(含原始数据计算代码计算结果) 1、时间:2001-2022年 2、来源:原始数据整理自wind 3、指标:证券代码、证券简称、统计截止日期、是否发生ST或*ST或PT、是否发生暂停上市、行业代码、…

aardio 两行代码 调用 libxl 读写 excel

废话不多说, 直接给连接 https://files.cnblogs.com/files/blogs/762462/libxl.7z?t=1713539927&download=true 运行效果:文件存放路径:再上代码 import dotNet import consolexl = dotNet.load("libxl.net", "libxl.net.dll"); xl.import("libx…

【进阶六】Python实现SDVRPTW常见求解算法——离散粒子群算法(DPSO)

基于python语言,采用经典离散粒子群算法(DPSO)对 带硬时间窗的需求拆分车辆路径规划问题(SDVRPTW) 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整2.1 需求拆分2.2 需求拆分后的服务时长取值问题 3. 求解结果4. …

python 爬虫

python 爬虫 1.开发工具 pycharm: https://pan.baidu.com/s/1s_bkgDT0QxNTQY07LnQRWQ?pwd=2dlb提取码:2dlb python3 VSCode 2.第一个爬虫的开发from urllib.request import urlopenurl = "http://www.baidu.com"resp = urlopen(url) #print(resp.read().decode(&q…

aardio 两行代码 优雅调用 libxl

废话不多说, 先给资源 https://files.cnblogs.com/files/blogs/762462/libxl.7z?t=1713539927&download=true 运行效果:文件存放路径:再上代码 import dotNet import consolexl = dotNet.load("libxl.net", "libxl.net.dll"); xl.import("libxl&…