Redis技术文章
-
Redis HSETNX 用原子方式初始化 Hash 字段:字段不存在时写入并返回 1,已存在时保持原值并返回 0。本文用 redis-cli 和 Go 客户端拆解返回值、重复调用、错误类型与适用边界。191 收藏 -
Redis XREADGROUP 的 NOACK 会跳过 Pending Entries List,不适合必须重试或必须追踪处理结果的任务。本文从 PEL、XACK 和消息丢失代价出发,说明什么时候可以使用 NOACK。189 收藏 -
通过假设故障说明redis-py普通管道的逐条响应处理,给出保留命令位置、区分ResponseError和连接未知状态的原创只读函数。178 收藏 -
Redis BITFIELD_RO 只接受 GET,可以从同一个字符串按位宽和偏移一次提取多个整数。本文用非字节对齐字段说明 i/u 编码、# 偏移、返回顺序和缺失位边界。176 收藏 -
Redis XTRIM MINID 按消息 ID 阈值清理 Stream,严格小于阈值的消息才在清理范围内。本文区分精确与近似模式、消息时间与业务时间,并说明消费者组 PEL 引用、版本策略、权限及审计注意事项。176 收藏 -
Redis JSON.SET 配合根路径和 XX 可仅更新已有文档,但子路径 XX 还要求字段存在。通过局部更新与整份替换示例,说明未命中处理、存在性竞态和版本锁边界。173 收藏 -
数据库 · Redis | 6天前 | Redis · 错误处理 · 事务 · exec · watch Redis事务 Discard WRONGTYPE Redis MULTI EXECABORT
Redis MULTI 报错时,先看错误发生在命令入队前还是 EXEC 执行时:语法和参数错误要修正并清理事务,WRONGTYPE 等运行时错误要逐项检查 EXEC 返回数组,WATCH 冲突才适合按条件重试。170 收藏 -
Redis ZDIFF 按成员身份返回第一有序集合与后续集合的差集。本文解释输入方向、WITHSCORES、分数变化误区,以及结果存储和生命周期。168 收藏 -
Redis SCAN 可配合 MATCH 和 COUNT 分批扫描业务键,但空批次不代表结束,COUNT 也不是页大小。本文给出只读游标循环,说明重复键、并发变化、中断状态及扫描范围的处理方式。168 收藏 -
Redis Stream 的 XREAD COUNT 只限制本次返回消息数量,不是全局限流。本文说明它与读取游标、BLOCK、多 Stream 以及 XREADGROUP 的边界。166 收藏 -
Redis CLIENT TRACKING 不会替应用保存本地缓存,而是记录客户端读过的 key,并在 key 被修改、过期或淘汰时发送失效通知。本文按 RESP3、RESP2、OPTIN/OPTOUT、BCAST 和断连竞态整理一套可落地的选择流程。166 收藏 -
Redis SUNIONCARD 的 LIMIT 可以在并集计数达到阈值时提前停止,适合只关心是否达标的场景。本文说明参数写法、返回值语义、空键、复杂度和多键部署边界。161 收藏 -
Redis Streams 中,XPENDING 可以先看消费者组的待确认总量,再用明细和 IDLE 毫秒过滤找出长期未确认消息。本文拆解 PEL、消费者、空闲时间和投递次数,并说明定位与恢复的边界。159 收藏 -
Redis Stream 要让多个 worker 分摊未消费消息,应让它们加入同一个 consumer group,并使用不同的 consumer 名称通过 XREADGROUP 读取;处理成功后用 XACK 清理 PEL,恢复时再读取自己的 pending 历史。158 收藏 -
Redis XGROUP SETID 修改的是消费组的 last-delivered-ID,而不是单个消费者的私有游标。本文说明 0-0、$ 和指定消息 ID 的区别,并梳理新消费者用 > 读取时与已有 PEL、XACK 及 ENTRIESREAD 的边界。154 收藏