MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据? 这个问题主要考察了以下几点内容: 1.Redis的内存淘汰策略。 2.Redis的最大内存设置。 思路:首先计算出20w数据所需的内存空间,设置最大内存,然后选择合适的内存淘汰策略。 内存淘汰策略 在Redis的redis.conf配置文件中,列出了8种策略: (1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。 (2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。 (3)volatile-random:从已设置过期时间的数据集中任意选择数据 阅读详情

1.Redis 过期删除策略

1)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。

2)定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。

2.内存淘汰策略

Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

Redis 提供 8 种数据淘汰策略:

LRU全称Least recently used,意思为淘汰掉最久未使用(即最老)的一条数据;

LFU全称Least-frequently used,意思为淘汰掉过去被访问次数最少的一条数据

淘汰策略名称

策略含义

人话

noeviction

默认策略,不淘汰数据;大部分写命令都将返回错误

不删除任意数据(但redis还会根据引用计数器进行释放),这时如果内存不够时,会直接返回错误。

volatile-lru

从设置了过期时间的数据中根据 LRU 算法挑选数据淘汰(只针对设置过期的keys)

从设置了过期时间的数据集中,选择最近最久未使用的数据释放 ,最老的删掉

allkeys-lru这个是最常用的

从所有数据中根据 LRU 算法挑选数据淘汰(所有keys)

从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放 最老的删掉

allkeys-random

从所有数据中随机挑选数据淘汰

随机选择一个数据进行释放;

volatile-random

从设置了过期时间的数据中随机挑选数据淘汰

从设置了过期时间的数据集中,随机

volatile-ttl

从设置了过期时间的数据中,挑选越早过期的数据进行删除

从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作

allkeys-lfu

从所有数据中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用)

淘汰掉过去被访问次数最少的一条数据

volatile-lfu

从设置了过期时间的数据中根据 LFU 算法挑选数据淘汰(4.0及以上版本可用)

淘汰掉设置了过期时间的key过去被访问次数最少的一条数据

把慢点掰开看:在 SAP HANA 中启用 SQL 优化耗时跟踪 SqlOptTime 的实战指南 摘要:SAP HANA 性能排查中,常出现SQL查询时快时慢的现象,表面看似执行问题,实则是编译阶段耗时过长。通过SQL优化跟踪工具SqlOptStep和SqlOptTime,可精准区分编译与执行时间。SqlOptStep展示优化树变化过程,而SqlOptTime则记录各阶段耗时,帮助定位问题根源。启用SqlOptTime需配置traceprofile,建议限定特定用户以减少系统负载。实际案例显示,报表响应慢常由计算视图编译(CeQo)导致,而非执行阶段问题。解决方案包括调整计算视图展开方式或优化基础视图结 阅读详情

相关推荐

UE4游戏开发:GameInstance与GameMode的实战应用与避坑指南

本文深入解析了UE4中GameInstance与GameMode的核心差异与实战应用。GameInstance作为贯穿游戏进程的全局单例,负责跨关卡数据持久化与系统管理;而GameMode则定义特定关卡内的游戏规则与逻辑,随关卡加载销毁。文章通过数据存储、动态模式切换及网络游戏等场景,提供了清晰的应用指南与常见避坑方案,帮助开发者构建更健壮的UE4游戏架构。

kubernetes8ctl的博客 230

Mysql里有2000W数据,Redis中只存有20w的数据,如何保证redis中的数据都是热点数据??

1. 选择要缓存的数据:对于数据量极大的情况,我们不能够将所有的数据都缓存到 Redis 中。缓存穿透指的是当查询一个不存在的 key 时,由于缓存中没有对应的数据,无法命中缓存,导致请求直接打到数据库上进行查询,由于请求查询的数据在数据库中也不存在,因此这个请求就会非常耗时,对后端数据库造成了极大的压力。数据的选择:通过合理地选择需要缓存的数据,例如对于热点数据、经常使用的数据等数据进行缓存,可以使 Redis 中存储的数据都是应用程序的热点数据,充分利用 Redis 的高读取速度,提升查询响应速度。

ccANDbh的博客 1006

保姆级教程:用北醒TFmini-i-CAN雷达给PixHawk飞控加装‘眼睛’,实现自动避障与定高

经过多次测试,前向雷达的最佳安装位置是机架前部下方5-10cm处,倾斜角度20-30度。电源方面,建议为CAN设备单独供电,避免电机启动时的电压骤降导致数据异常。北醒TFmini-i-CAN雷达与PixHawk飞控的组合,为DIY爱好者打开了低成本实现智能避障的大门。实际部署时,需确保整个CAN网络的波特率一致(TFmini-i默认为250kbps),每个设备具有唯一ID。雷达的安装角度也直接影响检测效果,建议通过3D打印支架将雷达向前下方倾斜15-30度。当使用多个雷达时,需为每个设备创建独立的参数组。

weixin_30892889的博客 337

mySQL⾥有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

通过合理配置和管理,结合上述策略和实践建议,你可以有效地确保Redis中只存储热点数据,并提高应用的性能和响应速度。对于需要频繁更新的热点数据,考虑使用Redis的版本控制功能,如WATCH, MULTI 和 EXEC 命令组合使用实现事务操作。在实际应用中最多使用的是缓存淘汰策略,限定 Redis 占⽤的内存,Redis 会根据⾃⾝数据淘汰策略,留下热数据到内存。当Redis的存储空间不足时,会自动淘汰最久未使用的数据。如果使用的是Redis集群,可以考虑使用缓存分区功能,将热点数据存储在特定的分区中。

zz_ll9023的博客 1563

信息安全-入侵检测技术原理与应用

入侵检测技术原理与应用、入侵检测概述、入侵检测技术、入侵检测系统组成与分类、入侵检测系统主要产品与技术指标、入侵检测系统应用

我的个人博客 1万+

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 407

MySQL里有2000万条数据,但是Redis中只存20万的数据,如何保证redis中的数据都是热点数据?

Redis的所有数据都存储在内存中,这意味着它的容量相较于磁盘存储更为有限。为了解决内存容量不足的问题,Redis提供了多种数据淘汰策略。其中,与保证热点数据密切相关的是LFU(Least Frequently Used)策略,它能够根据数据对象的访问频次,将访问次数最少(即最不常用)的数据淘汰出内存,以便为新的数据腾出空间。

王二的博客 1368

用AI从0开始量化交易-制定学习计划安装学习环境

量化小白,利用AI从零开始学量化

weixin_52285994的博客 2112

Redis面试题----MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?

Redis面试题----MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?

qq_38737545的博客 876

国科大学习资料--高级软件工程-复习题简答题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题简答题答案 def fib3 n (1…n).inject([0,1]){|mem| puts mem[0]+mem[1]; [mem[1],mem[0]+mem[1]]} end =====================================================================================================================================

无名何许人的博客 1397

5GS 协议栈 — PFCP 协议 — URR 用量上报规则

目录 文章目录目录URR 用量上报规则UEE 的参数Usage Report 的参数示例 URR 用量上报规则 29244 5.2.2 Usage Reporting Rule URR 的作用? 用来告诉 UPF 如何对 PDR 识别的 SDF 或 Application 业务进行使用量统计信息的上报。CP 收到 Report Information 后,可用于计费或者管控(e.g. 超量限速)等用途。 URR 在哪个流程里下发的? N4 会话建立流程。 N4 会话修改流程。 URR 是怎么工作

烟云的计算 4588

mySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据

本文探讨了如何优化Redis缓存以存储热点数据的策略组合。核心包括:1)合理配置数据淘汰策略(推荐allkeys-lru);2)采用惰性删除为主、主动预热为辅的缓存更新机制;3)通过键设计优化、容量规划和监控(如命中率、大Key分析)保障系统性能。建议为所有缓存设置TTL,并持续监控调整策略,使有限容量的Redis能高效服务大规模数据集。

qq_33665793的博客 747

YOLOv8独家原创改进:原创自研 | 创新自研CPMS注意力,多尺度通道注意力具+多尺度深度可分离卷积空间注意力,全面升级CBAM

自研CPMS,多尺度通道注意力具+多尺度深度可分离卷积空间注意力,全面升级CBAM

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3797

MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据

1、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据? redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。 2、Redis 有哪些适合的场景? (1)会话缓存(Session Cache) 最常用的一种使用 Redis 的情景是会话缓存(session cache)。用 Redis 缓存会话比其他存储(如 Memcached)的优势在于:Redis 提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物...

huangdaosheng110的专栏 1537

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL里有2000w数据,Redis中只存20w的数据,如何保证redis中的数据都是热点数据?

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰; volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰; volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰; allkeys-l

MrLiar的博客 1569

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL里有2000w数据Redis中只存20w的数据,如何保证 redis 中的数据都是热点数据?

首先我们可以看到Redis的空间时间上比我们MySQL少的多,那么Redis如何能够筛选出热点数据,这道题主要考察的是Redis的数据淘汰策略(这里有个误区,很多人容易混淆把数据淘汰策略当做数据过期策略),在Redis 4.0之后是为我们提供了8种淘汰策略,4.0之前则是提供的6种,主要是新增了LFU算法。其实说说是有8种,但是真正意义上是5种,针对random、lru、lfu是提供了两种不同数据范围的策略,一种是针对设置了过期时间的,一种是没有设置过期时间的。

weixin_64235858的博客 657

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。 redis 提供 6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 volatile-random

我是纯豆腐的博客 1万+

【吊打面试官系列-Redis面试题】MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

java1234的博客 523

MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

redis

qq_15654285的博客 145

redis存10万条数据_mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?...

mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?问题是什么数据?比如用户数据。数据库有2000w条。活跃用户:redis sortSet里 放两天内(为方便取一天内活跃用户)登录过的用户,登录一次ZADD一次,如set已存在则覆盖其分数(登录时间)。键:login:users,值:分数 时间戳、value userid。设置一个周期任务,比如每天...

weixin_31938727的博客 609

Mysql里有2000w数据,redis中只存20w数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰volatile-random:从已设置过期时

czh1924605670的博客 2083

mysql怎么保证热点数据_数据库里有2000W数据,Redis中只存20W的数据,如何保证 Redis 中的数据都是热点数据?...

面试的时候很容易被问到缓存的问题,比如数据库里有2000W数据,Redis中只存20W的数据,如何保证 Redis 中的数据都是热点数据?当 Redis 中的数据集上升到一定大小的时候,就需要实施数据淘汰策略,以保证 Redis 的内存不会被撑爆;那么如何保证 Redis 中的数据都是热点数据,需要先看看 Redis 有哪些数据淘汰策略。一、Redis 数据淘汰策略1.volatile-lru从已...

weixin_36436683的博客 369
上一篇: Redis 和 Mysql 数据库数据如何保持一致性
下一篇: Redis实战(+)
涵冰...
博客等级 码龄4年 2438粉丝 243原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值