簡體   English   中英

為什么使用排序集而不是列表Redis

[英]Why use Sorted Set instead of List Redis

我為什么要在redis list上使用按unix時間戳排序的redis sorted set文章redis sorted set ,並將元素推入其中。 他們似乎提供了相同的最終結果。 我注意到的一件事是使用redis sorted set您可以與其他集和zset進行交集

取決於您以后的使用情況。

按插入順序對ZSET進行排序,以及使用列表看起來很相似,但是有很多區別。 這里有一些:

  1. LIST可以重復。
  2. 在ZSET中,檢入一個元素是否存在非常有效,但在LIST中檢入非常大(特別是如果該元素不存在的話)。
  3. 從LIST提取非邊緣元素可能很慢(取決於LIST的大小以及對象與邊緣之一之間的距離)。
  4. 使用邊緣(L / R PUSH / POP)時,LIST最有效。
  5. ZSET具有並集和相交的附加功能,您可以按任何其他得分/權重進行排序。
  6. 在ZSET中,樂譜可以稍后更新,並且順序會改變。

通常,請查看每種數據類型提供的API,然后選擇一種可以為您提供所需最佳結果的API(而不是按插入時間排序)。

排序集確保密鑰是唯一的。 如果您想做復雜的事情。 例如,每次用戶登錄時,您都將用戶ID添加到排序集中。 並且有一個后端服務讀取排序的集合並更新用戶的信息和操作習慣。 如果您使用排序集,可以節省很多工作。

此外,如果用戶是高級付費會員,則可以將其ID的得分設置得更高,並更早刷新該用戶的習慣匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM