0

我想将 Redis 与 Java Redisson 库一起使用。我的任务是根据某些项目的字段按排序顺序存储项目。主要有以下三个限制:

  1. 项目的排序字段可以经常更新。整个集合每秒最多可能有 25k 次更新。
  2. 我需要非常快(最多 5 毫秒)获得我收藏中每个项目的实际排名。
  3. 集合大小可能高达 2500 万个项目。

是否可以使用具有此类约束的 Redisson ScoredSortedSet.rank 方法,或者它不适合并且有更好的解决方案?

4

2 回答 2

1

是的,ScoredSortedSet 一切皆有可能(它映射到 Redis 排序集),但我需要将我的字段转换为 score,以便 ScoredSortedSet 工作。Nikita 建议使用 RSortedSet 或 PriorityQueue,但是它们没有我需要的“rank”命令。

于 2017-04-08T21:13:12.560 回答
0

我的任务是根据某些项目的字段按排序顺序存储项目

您应该使用 RSortedSet 或 PriorityQueue 而不是 ScoredSortedSet。因为 ScoredSortedSet 使用数字来维护顺序,而 RSortedSet 或 PriorityQueue 使用 Comparator 用于按对象字段进行比较。

于 2017-04-06T17:02:23.280 回答