Redis技术文章
-
Redis 的 EXPIRE 默认会覆盖当前 TTL。只想首次设置过期时间时使用 NX;只处理已经有 TTL 的键使用 XX;只允许缩短或延长时分别使用 LT、GT。若同时覆盖字符串值,还要用 SET 的 KEEPTTL 保留原有 TTL。217 收藏 -
Redis XREADGROUP 通过 BLOCK 控制单次读取的等待时长,0 表示持续阻塞;配合 GROUP、consumer 和 STREAMS 的 > 游标即可等待消费者组中的新消息。本文说明创建组、消费、超时、Pending 消息与 XACK 的边界。217 收藏 -
Redis TDIGEST.BYRANK 根据零基排名返回数值估计。本文说明样本数、端点精度、inf 与 nan 的含义,以及窗口数据和摘要过期的管理方式。217 收藏 -
Redis LPOS 可以返回列表中匹配值的零基位置。本文用 COUNT、RANK 和 MAXLEN 组合定位重复值,说明返回类型、扫描方向和性能边界。217 收藏 -
Redis Lua 的优势是减少网络往返并保持原子性,代价是脚本运行期间会占用主线程。本文用有界循环、KEYS/ARGV、SLOWLOG、延迟历史和脚本缓存调用,给出一套可执行的收敛与拆分判断方法。216 收藏 -
Redis TTL 返回 -1 表示键存在但没有过期时间,-2 表示键不存在。本文用命令和 Go 分支示例区分三种状态,并排查普通 SET 覆盖、过期窗口和查询上下文不一致等常见原因。216 收藏 -
Redis ZINTERCARD 的 LIMIT 用于限制交集基数计算量:达到阈值即可提前结束,精确统计则使用默认无限制语义,并注意空 key、复杂度和集群多 key 边界。216 收藏 -
Redis 6.2 及以上可用 GETDEL 原子读取并删除字符串键,适合一次性登录令牌、确认码等场景。本文说明命中、空值、类型错误、旧版本 Lua 兼容和 TTL 边界。215 收藏 -
Redis ACL 的 key pattern 仍放行意外键,通常不是一个窄规则失效,而是旧的 ~*、selector、glob 范围或无 key 参数命令共同造成。本文用 ACL GETUSER、ACL DRYRUN 和 reset 重建方法定位并修正。215 收藏 -
Redis Streams 消费组里的消费者异常退出后,消息会留在 PEL 中等待确认。本文用 XAUTOCLAIM 按空闲时间接管消息,讲清游标、COUNT、JUSTID、XACK 和重复投递边界。215 收藏 -
Redis XAUTOCLAIM 的 COUNT 是每轮尝试接管的数量上限,不保证恰好返回相同条数。本文结合 PEL、min-idle-time、start 游标和 COUNT×10 扫描窗口,说明如何控制恢复负载、读取三段返回值并处理 0-0 与已删除消息边界。215 收藏 -
Redis ZREMRANGEBYLEX 用字典序区间删除同一 score 下的 sorted set 成员。本文说明包含与排除边界、预览后删除、返回数量以及不同 score 和非 ASCII 成员的使用边界。214 收藏 -
数据库 · Redis | 2个月前 | Redis · 缓存 · 运维 · redis maxmemory maxmemory-policy volatile-lru noeviction allkeys-lfu
Redis 达到 maxmemory 后,volatile-lru、allkeys-lfu 和 noeviction 的行为并不相同。本文用一组可复核的键、命令和 INFO 指标,说明如何按数据是否允许淘汰来选择策略,并识别写入失败边界。213 收藏 -
Redis pipeline 部分命令失败时,应逐条映射回复,区分命令错误与连接异常造成的未知结果。结合 redis-py 非事务示例,说明错误对象、底层重试、非幂等写入和日志记录的处理范围。213 收藏 -
Redis 向量检索变慢时,不要只看总耗时。本文用 FT.PROFILE 拆开 VECTOR 迭代器、过滤模式、距离计算和结果处理器,给出可复现的排查顺序与调参边界。212 收藏