当前位置: 首页 > news >正文

每日八股day16

### 本系列帖子为鼠鼠复习八股巩固记忆和个人理解所写,如有错误纯属本人实力不佳,欢迎各位大佬阅读指正 ###

1.Redis 键过期删除三种策?

定时删除:

key设置过期时间时,创建一个定时器,时间一到立即删除。

优点:

内存友好,过期key马上被删,不会浪费内存。

缺点:

cpu不友好,大量key同时过期会产生大量定时器事件,阻塞主线程,影响Redis性能。

惰性删除:

不主动删,等key被访问时,先检查是否过期,过期就删除并返回不存在。

优点:

cpu友好,只有在用到时才处理,不占用额外cpu.

缺点:

内存不友好,大量长期不访问的过期key会一致占内存,浪费内存。

定期删除:

Redis每隔一段时间,随机抽取一部分key检查,删除其中过期的。

优点:

平衡CPU和内存,不会占用太多CPU,也能及时清理过期key。

缺点:

随机抽取+有执行时间限制,不能保证所有过期key都被及时删掉。

2.Redis 内存满后八大淘汰策略分别是什么?

Redis内存使用达到上限之后,一共有八种内存淘汰机制,可分成三类

不淘汰数据:

noeviction,默认策略内存满了之后,直接拒绝写入并返回错误,保证数据不丢失。

设置了过期时间的key:

volatile-lru:淘汰最近最少使用的过期key。

volatile-lfu:淘汰使用频率最低的过期key。

volatile-random:随机淘汰过期key。

volatile-ttl:淘汰剩余存活时间最短、马上要过期的key。

针对所有key:

allkeys-lru:在全部key里淘汰最近最少使用的。

allkeys-lfu:在全部key里淘汰使用频率最低。

allkeys-random:随机淘汰任意key。

3.LRU 底层实现原理、Redis 近似 LRU 怎么做的?

传统LRU是最近最少使用淘汰算法,核心是如果最近被访问过,那么将来被访问的概率也更高,主要实现是哈希表+双向链表。

为什么Redis不用标准LRU:

标准LRU需要额外链表结构,占用内存大,且高并发下频繁移动节点会有性能开销,Redis用的是近似LRU。

近似LRU原理:

每个key自带一个24bit的时间戳,记录最后一次被访问的时间,内存不足淘汰时,随机采用5个key,从中选出lru时间最早的key淘汰,重复执行,直到内存降到阈值一下。

优点:

几乎不额外占用内存。

效率极高,避免链表维护开销。

采样数足够时,效果接近标准LRU。

4.过期键会不会主动占用内存?主从间过期怎么同步?

会,并且在被真正删除前一直占用内存。redis只是给key打上过期标记,并不会立即释放内存,只有当key触发懒性删除、后台定时任务执行定期删除时,才会真正把过期key从内存删除,如果大量过期key长期不被访问,就会持续占用内存。

主从间过期如何同步:

主节点主导删除,从节点不主动删。主库在自身触发惰性删除或定期删除后,会将对应DEL命令同步到从库,从库只负责执行这条命令,从而实现过期键的同步删除。

Redis 3.2之后,从库读取时如果发现key已经过期,会直接返回空,假装key不存在,但不会执行物理删除,避免主从删除时序不一致,保证最终数据一致。

http://www.jsqmd.com/news/1357923/

相关文章:

  • Python编程思维训练:100道练习题带你从语法到实战
  • 2026襄阳瓷砖空鼓维修本地靠谱维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • Figma到Unity UI自动化导入:原理、配置与避坑指南
  • AI Agent实战:基于Handoff的浏览器自动化任务执行指南
  • 2026帮企业做ISO辅导的十大实力公司,避坑攻略与深度测评 - 工业推荐榜
  • 百度网盘直链解析终极指南:告别限速的5个高效技巧
  • 基于 DEA Performance 的超效率 FDH 模型计算准确性验证:非凸前沿 + 非期望产出全流程校验
  • 大模型应用开发:小白也能掌握的高薪,抢占程序员未来!
  • 2026常德瓷砖空鼓维修本地专业维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • 软件测试知识总结(基础篇)
  • AI数据基础设施:构建非结构化数据高效存储与管理的核心技术
  • AI会议记录工具Notetaker:自动转录、摘要与行动项提取实践指南
  • 易今科技专业吗 图书馆自助借还书机源头工厂技术如何 - 工业推荐榜
  • MCP协议传输层实现方式与应用场景解析
  • 企业如何制定AI年度规划?从试用工具到规模化应用
  • 2026泰安瓷砖空鼓维修本地优质维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • SEO优化实战:从关键词策略到技术优化的流量增长指南
  • 基于Stable Diffusion的历史主题AI图像生成项目部署与测试指南
  • 本地AI项目部署实战:从零部署RogerNB,掌握通用测试与优化方法
  • 宿迁市全屋瓷砖空鼓维修_2026苏北瓷砖空鼓维修避坑指南与精选 - 雨婺虹修缮
  • 焦化厂如何做好脱硫脱硝的精准控制?
  • 2026年DSE培训价格透明**出炉,零套路不踩坑,实力测评看这篇就够 - 工业推荐榜
  • 网工毕业设计易上手选题集合
  • 高铁制动盘深孔激光测量技术与工艺优化
  • OpenUI5 Metadata.js:企业级前端框架的元数据系统设计
  • 2026年国内FDE服务机构TOP10排行榜:技术实力和服务能力全解析
  • PyTorch Java环境搭建与AI工程化实践指南
  • 技术人如何提升执行效率与问题定位能力:从环境优化到排查框架
  • Figma设计协作平台核心价值与实战指南:从概念到高效工作流
  • 构建有记忆的AI Agent:基于SQLite与工作流的热点监控系统实践