当前位置:首页 > AI技术 > 正文内容

怎样防止主节点淘汰行为不一致|Duuu笔记

admin7个月前 (04-05)AI技术177

Redis进阶技巧:本文深入解析

主从节点淘汰策略必须完全一致,否则必然导致数据不一致;需统一maxmemory-policy、maxmemory值,确保read_only开启,并避免从节点写操作及运行时配置变更。

主从节点淘汰策略必须完全一致,否则数据不一致是必然的

Redis 主从复制不保证淘汰行为同步——淘汰是本地行为,从节点不会复刻主节点的

DEL

或

EVICT

操作。如果主从配置不同,比如主用

allkeys-lru

、从用

volatile-ttl

,同一时刻内存满时,两者会删掉完全不同的 key,后续读从库就可能命中脏数据或空值。

检查并统一

maxmemory-policy

配置项

这是最常见也是最致命的差异点。只要主从的

maxmemory-policy

值不一致,淘汰就不一致。

用

redis-cli -h {host} -p {port} config get maxmemory-policy

分别查主从值,确认完全相同(包括大小写)

noeviction

虽安全但容易写失败,生产环境慎用;

allkeys-*

类策略比

volatile-*

更可控,因后者依赖 TTL,而很多业务根本没设 TTL

配置文件里写死比运行时

config set

更可靠——后者重启即丢失,且主从不同步执行

config set

会导致瞬时不一致

注意

maxmemory

设置与实际可用内存的偏差

即使策略一致,若主从

maxmemory

值不同,触发淘汰的时机就不同。更隐蔽的问题是:Linux overcommit、Redis 自身内存碎片、AOF rewrite 临时内存占用,都会让“实际可分配内存” ≠

maxmemory

。

主从节点的

maxmemory

必须数值相等,建议用绝对值(如

2gb

),避免用百分比或相对单位

监控

used_memory_peak_human

和

mem_fragmentation_ratio

,如果从节点碎片率长期 > 1.5,说明它更早触发淘汰——不是策略问题,是内存管理效率差异

开启

activedefrag yes

可缓解碎片,但仅限 Redis 4.0+,且 CPU 开销明显,需权衡

从节点写操作(如

read_only no

)会彻底破坏一致性

哪怕淘汰策略和内存限制全一致,只要从节点被误设为可写(

read_only no

),它自己删 key、写 key 的行为就和主节点无关了。这种不一致无法通过复制修复。

检查

redis-cli config get slave-read-only

(旧版)或

config get replica-read-only

(6.0+),确保返回

yes

禁止在从节点执行

flushdb

、

del

、

expire

等任何修改数据的命令——这些操作不会同步到主,也不会触发主的淘汰逻辑

运维脚本或监控告警中,应把

role:slave

+

connected_slaves:0

+

slave_read_only:0

组合作为高危信号

真正难防的不是配置漏改,而是“策略一致但行为不一致”:比如主节点因客户端连接数多、请求响应快,提前触发淘汰;从节点因复制延迟积压大量待处理命令,内存涨得慢、淘汰来得晚。这种时间差导致的短暂不一致,只能靠应用层容忍或降级策略兜底。

相关文章

LLM介绍

。LLM 被证明在使用指令形式化描述的未见过的任务上表现良好。这意味着 LLM 能够根据任务指令执行任务,而无需事先见过具体示例,展示了其强大的泛化能力。 :小型语言模型通常难以解决涉...

使用 ESP

针对该分类问题,我们使用了 Kaggle 手势识别数据集 中的一个开源数据集。原始数据集包括 10 个类别,我们只使用了其中 6 个。这些类别更容易识别,且日常生活中更有用,如...

前端开发高级应用:MuleRun如何连接Slack通知 MuleRun消息推送集成配置步骤实战案例|Duuu笔记

若MuleRun无法向Slack推送通知,需依次配置Incoming Webhook或Bot Token、在MuleRun中设置对应通知目标参数,并通过最小化任务测试验证;常见失败原因包括凭据错误、权...

深入理解AI:WorkBuddy 怎么做组织架构图 WorkBuddy 组织架构图生成教程【实战】完全指南|Duuu笔记

WorkBuddy可通过四种方式生成组织架构图:一、用自然语言指令触发AI自动解析并渲染Mermaid图表;二、上传Excel结构化数据映射字段后批量构建动态树状图;三、启用OpenClaw技能包对接...

常见的神经网络模型

前馈神经⽹络中包含激活函数( 、tanh函数等)、损失函数(均⽅差损失函数、 等)、优化算法(BP算法)等。常⽤的模型结构有:感知机、 、全连接神经⽹络、卷积神经⽹络、...

前端开发实战详解:骡子快跑如何生成会议纪要 骡子快跑语音转文字整理技巧最佳实践|Duuu笔记

使用听脑AI转写、骡子快跑生成纪要、影子跟读校验、自定义术语词典及EcomGPT-CNN情绪风险分析,五步实现会议纪要高效精准产出。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。