因为 zset 中可以存在 score 相同的数据,按 score 来查询下一页时,怎么保证下一页相同的 score 数据不丢失呢?
|
SorcererXWJun 27, 2023
1
- 最好的办法是保证 score 不重复,score 范围这么大,计算 score 的时候多引入一些字段让 score 不冲突即可
- 如果 score 肯定有相同的:每一次查询后,把最后那个 score 的所有项目,生成一个 bloom filter ,存下来或者透传。在查询下一页的时候,把对应的 score 的数据全拉出来,做一层过滤。 |
|
yemoluoJun 27, 2023
2
score 是 float64 吧,你把平时的 score + 左边补 0 的 id
|
|
guxingkeJun 27, 2023
3
全查 业务内存排序 sort by score , id
|
|
4
@SorcererXW 好麻烦
|
|
DlinJun 27, 2023
6
我寻思着,也没有啥丢失啊,zrange key minScore maxScore byscore limit offset count
|
|
DlinJun 27, 2023
7
@Dlin The order of elements is from the lowest to the highest score. Elements with the same score are ordered lexicographically.
|
|
DlinJun 27, 2023
9
可是 ZRANGEBYSCORE 也应该不会有什么问题吧?
|