首頁 >資料庫 >Redis >redis中zset怎麼使用

redis中zset怎麼使用

(*-*)浩
(*-*)浩原創
2019-06-17 15:34:534954瀏覽

Redis中zset是set的升級版本,他在set的基礎上增加了一個順序屬性,這個屬性在加入修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解了兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。

redis中zset怎麼使用

使用有序集合(zset),你可以非常快速地(O(log(N)))完成添加,刪除和更新元素的操作。因為元素是在插入時就排好序的,所以很快地透過評分(score)或 位次(position)獲得一個範圍的元素。存取有序集合的中間元素同樣也是非常快的,因此你可以使用有序集合作為一個沒用重複成員的智慧列表。在這個清單中, 你可以輕易地存取任何你需要的東西: 有序的元素,快速的存在性測試,快速存取集合中間元素! (推薦學習:Redis影片教學

簡而言之,使用有序集合你可以很好地完成 很多在其他資料庫中難以實現的任務。

at first,我們先加入資料:

> zadd member_list 10 a 3 b 1 c 4 d 7 e
(integer) 5
#返回5,即成功加了5个进入集合。现在试试添加重复的元素
> zadd member_list 9 a 8 f
(integer) 1
#这个步骤,返回了1,而不是2,是因为a这个元素已经存在于集合当中了,不会添加成功。
> zrange member_list 0 6 WITHSCORES
1) "c"
2) 1.0
3) "b"
4) 3.0
5) "d"
6) 4.0
7) "e"
8) 7.0
9) "f"
10) 8.0
11) "a"
12) 9.0

可以看到,有序集合排序的規則是根據分母的大小,分母越小排在集合的前面

可以用於一個大型線上遊戲的積分排行榜。每當玩家的分數改變時,可以執行ZADD指令更新玩家的分數,此後再透過ZRANGE指令取得積分TOP TEN的使用者資訊。當然我們也可以利用ZRANK指令透過username來取得玩家的排行資訊。最後我們將組合使用ZRANGE和ZRANK指令快速的獲取和某個玩家積分相近的其他用戶的資訊。
Sorted-Sets類型也可用於建立索引資料。

更多Redis相關技術文章,請造訪Redis資料庫使用入門教學欄位學習!

以上是redis中zset怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn