Redis核心知识点
Redis核心知识点
一、两种持久化
- RDB快照
快照间隔内的数据会丢失;如果数据量很大,保存快照时间会比较长
- AOF日志(Append Only File)
同步选项:always(每个命令同步)、everysec(每秒同步一次)、no(系统决定)
二、数据过期策略
1.定时删除
redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。
- 每100ms从过期字典中随机挑选20个,把其中过期的key删除;
- 如果过期的key占比超过1/4,重复上面步骤
为了保证不会循环过度,导致卡顿,扫描时间上限默认不超过25ms。根据以上原理,系统中应避免大量的key同时过期,给要过期的key设置一个随机范围。
2.惰性删除
过期的key并不一定会马上删除,而是查询时,去判断是否过期,如果过期了才删除。
三、数据淘汰策略
可以设置内存最大使用量,当内存使用量超出时,会施行数据淘汰策略。
Redis六种淘汰策略:
volatile-lru:最近最少使用淘汰(有过期时间的数据集)
volatile-ttl:将要过期的淘汰(有过期时间的数据集)
volatile-random:随机淘汰(有过期时间的数据集)
allkeys-lru:最近最少使用的淘汰(全部数据集)
allkeys-random:随机淘汰(全部数据集)
noeviction:禁止强制淘汰(全部数据集)
Redis 4.0 引入了 LFU (访问频率最少)
volatile-lfu :访问频率最少(有过期时间的数据集)
allkeys-lfu:访问频率最少(全部数据集)
LFU 策略通过统计访问频率
四、事务
事务中的多个命令被一次性发送给服务器,而不是一条一条发送,这种方式被称为流水线,它可以减少客户端与服务器之间的网络通信次数从而提升性能。
Redis 最简单的事务实现方式是使用 MULTI 和 EXEC 命令将事务操作包围起来。
五、集群备份复制,高可用
通过使用 slaveof <主host>
连接过程
先快照,后增量复制
主从链
解决从服务器太多。(主服务器可能无法很快地更新所有从服务器,或者重新连接和重新同步从服务器将导致系统超载。)增加中间层分担。
哨兵(Sentinel)
redis集群哨兵模式,保证集群高可用。Sentinel(哨兵)可以监听集群中的服务器,并在主服务器进入下线状态时,自动从从服务器中选举出新的主服务器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构