Redis · 有序集合读取实验

动态排行榜翻页错位模拟器

同一个排行榜,两次查询之间只发生一次加分。观察页码没变时,读者看到的集合为什么已经变了。

榜单尚未变化

两次读取之间发生了什么

实时 offset 分页
读取 01

第 1 页

offset 0–2,此时读取结果看起来完全正常。

时间差

许墨加分

+200

点击上方按钮,让原第 6 名升到第 2 名。

读取 02

第 2 页

offset 3–5,等待排行榜发生变化。

重复读取等待第二次读取
漏读项等待第二次读取
这一策略保证什么查询快,结果随榜单变化

策略取舍

实时 offset:便宜,但页码没有身份

每次都从最新榜单按位置切一段。查询很直接,但两次请求面对的已经不是同一个序列。

    重复读取 漏读但未出现在列表 邻域窗口自然重叠

    Redis 命令形态

    页码先在应用层换算成 start、stop,再读取有序集合。