Redis技术文章
-
Redis SINTERCARD 返回的是多个集合交集中的不同成员数量。由于 SET 写入同一个成员只保留一份,它不能恢复重复写入次数;若要统计成员出现在多少个集合,应在写入阶段保留计数,或用有序集合汇总分值。190 收藏 -
Redis ZSET 分页出现漏数据,通常不是 Redis 丢了记录,而是分页游标只保存 score、同分值记录缺少 member 边界,或翻页期间集合发生变化。本文用一组可复现命令拆开排序规则、游标设计和上线检查。189 收藏 -
给一个需要同时写入多个 Redis 字符串键的初始化场景,说明 MSETNX 为什么能做到全成全败、返回 0 时如何定位已存在键,以及单机原子语义在集群多键操作中的边界。189 收藏 -
数据库 · Redis | 1个月前 | Redis · 分页 · 缓存设计 · 排行榜 · Sorted Set · ZREVRANK Redis Sorted Set 排行榜 同分排名 排行榜翻页 历史榜单
讲清 Redis Sorted Set 排行榜中同分排序与业务名次的区别,并给出并列排名、版本化翻页、周期键历史榜单和过期保留的实用设计。189 收藏 -
Redis XREADGROUP 的 NOACK 会跳过 Pending Entries List,不适合必须重试或必须追踪处理结果的任务。本文从 PEL、XACK 和消息丢失代价出发,说明什么时候可以使用 NOACK。189 收藏 -
Redis ZRANGE 读取排行榜时,分数决定主排序,同分成员再按字典序决定稳定的 tie-breaker。本文用固定排名页、BYSCORE 分数区间和分数加成员游标解释 REV、WITHSCORES、LIMIT 及并发写入下的分页边界。189 收藏 -
Redis BigKeys 排查可以先用 SCAN 增量发现,再用 MEMORY USAGE 按字节估算,最后按风险和固定批次处理;本文说明 SAMPLES、COUNT 与 UNLINK 的边界。188 收藏 -
Redis SORT_RO 会直接返回列表、集合或有序集合的排序结果,不使用 STORE 创建临时键。本文从 SORT 与 SORT_RO 的区别、LIMIT、BY、GET、ALPHA 和 Go 客户端接收方式说明如何选择只读排序。188 收藏 -
Redis Hash 变大后,真正难排查的常是某几个字段值异常膨胀。本文用 HSCAN NOVALUES 先低成本找字段,再按需回读长度并设置告警阈值,避免把整份 Hash 搬到应用内存。187 收藏 -
Redis Streams 消费组恢复超时 pending 消息时,可以给 XAUTOCLAIM 加 JUSTID,只接管并返回消息 ID,再按 ID 读取和处理,成功后用 XACK 清理 PEL。本文用一个小型恢复器说明游标、COUNT、0-0 和失效 ID 的处理边界。187 收藏 -
用 Redis SET NX EX 原子创建带过期时间的分布式锁,配合唯一 token 和 Lua 原子释放,避免锁永久残留或误删其他实例的新锁。186 收藏 -
用 Redis ZDIFF 取出第一个有序集合独有的成员,说明 WITHSCORES、空结果、ZDIFFSTORE 与 Redis Cluster 多键同槽位边界。186 收藏 -
Redis SPUBLISH 用于向分片频道发送实时消息。本文说明命令参数、返回值、Redis Cluster 路由边界,并对比 PUBLISH 与 Stream 的适用场景。186 收藏 -
RedisTimeSeries 的 TS.ADD 遇到同一时间戳重复采样时,ON_DUPLICATE LAST 会用新值覆盖旧值,SUM 会把新旧值相加。本文从一次重复上报造成的指标异常入手,说明两种策略的语义、单次命令边界和选型方法。185 收藏 -
Redis XSETID 设置的是 Stream 的最后生成 ID 元数据,不是已有消息的可编辑 ID。本文区分 entry ID、last-generated-id 和消费组投递位置,说明如何用 XINFO STREAM 排查、用 XADD 创建更正消息,以及用 XGROUP SETID 调整消费起点。185 收藏