关注
是宣讲会面的吗
查看原帖
点赞 2
相关推荐

点赞 评论 收藏
分享

点赞 评论 收藏
分享
一笑而过2222:4. Redis缓存更新机制
核心策略:
- 过期删除:通过 expire 设置键的过期时间,到期后由后台线程(惰性删除+定期删除)处理。
- 惰性删除:客户端访问时检查是否过期,过期则删除。
- 定期删除:每隔一段时间随机检查部分键,删除过期键(通过配置 hz 控制检查频率)。
- 主动更新:应用主动调用 set / del 等命令更新缓存,常见场景:
- 数据变更时(如数据库更新后),同步更新缓存。
- 缓存失效前(如提前30秒),后台线程主动刷新(“缓存预热”)。
- 淘汰策略:当内存不足时,按策略淘汰旧数据(如LRU、LFU、随机等,见第5点)。
5. Redis的LRU机制(Least Recently Used)
原理:
- 近似LRU:Redis并非严格实现LRU,而是采样少量键(默认5个),淘汰其中最久未使用的键,通过 maxmemory-samples 参数调整采样数量。
- 实现方式:每个键维护 lru 字段(记录最后一次访问时间),淘汰时比较采样键的 lru 值。
- 优化策略:
- Redis 4.0引入LFU(最不常用) 策略,结合访问频率和时间淘汰数据。
- 可通过 maxmemory-policy 配置淘汰策略,如 allkeys-lru (所有键中使用LRU)、 volatile-lru (仅过期键中使用LRU)。
6. Redis集群
核心架构(以Redis Cluster为例):
- 分片机制:
- 数据按哈希槽(Hash Slot)分布,共16384个槽,每个节点负责部分槽。
- 键通过 CRC16(key) % 16384 计算归属的槽,路由到对应节点。
- 节点角色:
- 主节点(Master):负责读写操作,维护数据和槽信息。
- 从节点(Slave):复制主节点数据,主节点故障时可自动选举为新主(通过Raft协议)。
- 高可用机制:
- 自动故障转移:当主节点下线,从节点通过投票成为新主,保证服务不中断。
- 数据冗余:每个主节点至少有一个从节点,避免单点故障。
- 集群通信:
- 节点间通过Gossip协议交换状态信息(如节点存活、槽分配),维护集群拓扑。
- 典型部署:
- 至少3个主节点(每个主带1个从),形成3主3从架构,保证容错性(最多允许1个主节点故障)。
补充:Redis集群的优缺点
- 优点:
- 支持海量数据(通过分片扩展内存)。
- 高可用性(故障自动转移)。
- 读写分离(从节点可承担读请求)。
- 缺点:
- 不支持多键事务(跨节点键无法原子操作)。
- 客户端需处理分片路由(或通过中间件如Codis、Twemproxy)。
- 集群扩展时需迁移数据(通过 redis-trib 工具自动迁移槽)。

点赞 评论 收藏
分享
牛客热帖
更多
- 1... 腾讯提前批后台开发凉经teg1.2W
- 2... 百度提前批一面9482
- 3... 回忆录:后端鼠鼠苦苦哀求日常实习5366
- 4... 大三双非水产专业上岸阿里后端(一)2713
- 5... 去一座新的城市,开始一段新的旅途2414
- 6... 一线城市生存成本分析:月薪多少才够用?2118
- 7... 秋招offer选择 美团or快手1673
- 8... 焦虑麻了1620
- 9... 天塌了,自制力差,学了一学期的JavaSE,暑假玩了四五天天,花了八九天把笔记都看了了一遍发现记不住,就花了九天去学MySQL,然后再回过来练习Javase面试,随机抽了两个题目,线程的生命周期,ArrayList和linkedlist的区别,一点也讲不出来,我是不是不适合走后端🤯🤯🤯备受打击,现在se也不想复习了,脑子一团乱糊感觉知识进不去😭😭😭下学期就大三了,我还是民办三本,😭我该何去何从🤡1533
- 10... 实习转正,看的不只是硬实力1463
正在热议
更多
# 风评不好的公司,你会去吗? #
37104次浏览 226人参与
# 假如你的老板掉河里,你的工作能为他做什么 #
31067次浏览 380人参与
# 第一份工作应该选高薪还是热爱? #
70606次浏览 675人参与
# 职场新人体验 #
2883次浏览 33人参与
# 你觉得早上几点上班合适? #
73465次浏览 308人参与
# 学历贬值真的很严重吗? #
26061次浏览 179人参与
# 推荐一首陪你工作的歌吧 #
15108次浏览 99人参与
# 秋招签约后的心态变化 #
83757次浏览 820人参与
# 听劝,这个公司值得去吗 #
487420次浏览 1709人参与
# 双非能在秋招上岸吗? #
223097次浏览 1180人参与
# 外包能不能当跳板? #
37735次浏览 228人参与
# 面试被问第一学历差时该怎么回答 #
137770次浏览 853人参与
# 打工人的工作餐日常 #
54677次浏览 432人参与
# 大学最后一个寒假,我想…… #
47286次浏览 576人参与
# 反问环节如何提问 #
93643次浏览 1938人参与
# 一人推荐一个值得去的通信/硬件公司 #
186943次浏览 1861人参与
# 月薪多少能在一线城市生存 #
35644次浏览 351人参与
# 我想象的实习vs现实的实习 #
288318次浏览 2244人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
93149次浏览 686人参与
# 你上一次加班是什么时候? #
89621次浏览 574人参与