第 4 章 · Key 设计与命令进阶

三个交互演示:① SCAN 渐进式遍历 · ② Key 命名评分器 · ③ TTL 倒计时

SCAN 渐进式遍历:cursor 是怎么走的?

Redis 内部是一个哈希表(数组 + 链表)。SCAN 不是顺序遍历,而是用「反向二进制迭代」算法。点「下一步」单步看 cursor 怎么跳:

当前 cursor0
下次 cursor-
本次扫到0
本次返回0 Key
累计调用0
累计匹配0 Key
反向二进制迭代:cursor 从 0 开始,每次取反位+1 再反回来。例如 16 桶时序列是 0→8→4→12→2→10→6→14→1→...这种走法在哈希表 rehash 时也能保证「不漏」(但可能重复)。

Key 命名评分器:输入你的 Key 名,看打多少分

基于 7 大命名原则给你的 Key 打分,并给出改进建议:

TTL 实时倒计时:观察 SET 的「清除 TTL」副作用

添加几个带 TTL 的 Key,看它们倒计时;试试「SET 不带 EX」按钮看 TTL 怎么被清掉:

试一试:点击下方任意 Key 的「SET 不带 EX」按钮,TTL 立即变为 ∞(永久)。这就是生产中最容易踩的坑。正确做法是 SET key value KEEPTTL