为什么使用 Sorted Set 而不是 List Redis

jku*_*ner 6 list set sortedset redis zset

为什么我会在 aredis sorted set上使用按 unix 时间戳排序的a of 文章redis list并将元素推送到它上面。它们似乎提供了相同的最终结果。我注意到的一件事是,redis sorted set您可以与其他集合和 zset 进行交集

Ofi*_*zon 8

看你之后的使用情况。

按插入顺序排序 ZSET 和使用列表看起来很相似,但有很多不同之处。以下是一些:

  1. LIST 可以有重复项。
  2. 在 ZSET 中检查元素是否存在非常有效,但在 LIST 中非常广泛(特别是如果元素不存在)。
  3. 从 LIST 中获取非边缘元素可能很慢(取决于 LIST 的大小以及对象与边缘之一的距离)。
  4. LIST 在处理边 (L/R PUSH/POP) 时效率最高。
  5. ZSET 具有并集和相交的附加功能,您可以按任何其他分数/权重进行排序。
  6. 在 ZSET 中,分数可以稍后更新,并且顺序会改变。

通常,查看每种数据类型提供的 API,然后选择可以为您提供最佳结果的 API(除了按插入时间排序)。