Go语言技术文章
-
Redis Sentinel 的下线判定要同时看时间阈值和 Sentinel 数量:down-after-milliseconds 决定单个 Sentinel 等多久,quorum 决定多少 Sentinel 同意故障。本文用三节点拓扑说明如何设置与复查,避免把检测阈值和客户端重连混为一谈。462 收藏 -
Redis Search 可通过 FT.SEARCH 的 TIMEOUT 设置单次查询预算,并结合 search-timeout 默认值和 search-on-timeout 策略判断返回部分结果还是失败。483 收藏 -
Redis Hash 适合平面字段和字段级读写,Redis JSON 适合嵌套对象、数组和路径级访问。本文从数据形状、更新粒度、查询能力、内存成本与生产迁移边界说明两者如何选择。277 收藏 -
Redis 分布式锁请求超时不等于加锁失败。本文区分请求、业务与租约期限,解释身份比较释放、续租失败、SDK 重试和 fencing 的职责,帮助处理未知结果并防止旧持有者迟到写入。425 收藏 -
从客户端 GET、判断、DECRBY 的竞态出发,说明 Redis Lua 如何把检查与更新放入同一次原子执行,并给出 KEYS、ARGV、EVALSHA、NOSCRIPT 和脚本长度的迁移清单。363 收藏 -
Redis TTL 不按预期过期,通常不是 Redis 忽略了时间,而是过期没有成功写入、后续 SET 覆盖清除了 TTL,或把主动清理误解成精确计时。本文用 TTL、PTTL 和最小命令集逐层定位。380 收藏 -
Redis 大 Key 不一定要改业务接口才能治理。本文从测量边界开始,演示如何按字段组拆成多个 Hash,用读取门面保持调用方式不变,再通过双写、回填、切换和旧 Key 下线完成迁移。207 收藏 -
Redis RDB 与 AOF 的选择应围绕数据资产、允许丢失窗口和恢复耗时展开。本文比较快照、同步策略与重写边界,说明隔离历史备份为何不可替代,并给出只读检查和恢复演练思路。119 收藏 -
Redis AOF 重写期间延迟升高时,先用 INFO persistence 确认窗口,再结合 COW、fork、fsync 排队和延迟事件区分资源竞争与命令本身变慢。134 收藏 -
Redis Cluster 多键命令报 CROSSSLOT,通常是参与命令的键被分到了不同 hash slot。本文介绍槽位检查、hash tag 设计和生产边界。335 收藏 -
Redis Streams 消费者组出现 Pending 积压时,先用 XPENDING 区分总量、消费者和空闲时间,再用 XAUTOCLAIM 认领失联消费者的消息,最后以幂等处理和 XACK 收口。458 收藏 -
梳理 Redis Streams 使用 XGROUP CREATE 创建消费者组时 0-0、$ 和 MKSTREAM 的选择,说明历史回放、实时接入、幂等初始化与结果确认的边界。445 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏 -
用 MySQL Performance Schema 的语句摘要表按总耗时、平均耗时、调用次数和样例 SQL 找到最值得优先处理的慢 SQL,并识别摘要容量不足造成的 NULL 汇总行。150 收藏 -
MySQL GTID 迁移要让备份数据与事务水位对应,不能用补写 GTID 元数据代替恢复。本文用集合比较示例识别缺失事务、已清理历史及额外事务,并解释自动定位与切换放行条件。285 收藏