1. 程式人生 > >Redis數據結構04-SortedSet

Redis數據結構04-SortedSet

sets 微博 排序。 start 正是 -- 由於 移除 scores

1.存儲sortedset

Sorted-Sets和Sets類型極為相似,它們都是字符串的集合,都不允許重復的成員出 現在一個Set中。它們之間的主要差別是Sorted-Sets中的每一個成員都會有一個分 (score)與之關聯,Redis正是通過分數來為集合中的成員進行從小到大的排序。然 而需要額外指出的是,盡管Sorted-Sets中的成員必須是唯一的,但是分數(score) 卻是可以重復的。

Sorted-Set中添加、刪除或更新一個成員都是非常快速的操作,其時間復雜度為 集合中成員數量的對數。由於Sorted-Sets中的成員在集合中的位置是有序的,因此, 即便是訪問位於集合中部的成員也仍然是非常高效的。事實上,

Redis所具有的這一 特征在很多其它類型的數據庫中是很難實現的,換句話說,在該點上要想達到和Redis 同樣的高效,在其它數據庫中進行建模是非常困難的。

例如:遊戲排名、微博熱點話題等使用場景。

1 )zadd key score member score2 member2 ...:將所有成員以及該成員的分數存儲到sorted--set中
2)zcard key:獲取集合中的成員數量
獲得元素
3.zscore key member:返回指定成員的分數
4)zcard key:獲取集合中的成員數量
刪除元素
5)zrem key member[member...]:移除集合中指定的成員,可以指定多個成員
範圍查詢
6)zrange key start end [withscores]:獲取集合中腳標為start-end的成員,[withscores]參數表明返回的成員包含及其分數
7)zrevrange key start stop[withscores]:照元素分數從大到小的從順序返回索引 從start到stop之間的所有元素(包含兩端的元素)
8)zremrange key start stop:按照排名範圍刪除元素

9)zremrangebyscore key min max:按照分數範圍刪除元素

擴展,limit
1)zrangebyscore key min max[withscores] [limit offset count]:返回分數在【min,max】的成員並按照分數從高到低排序,[withscores]:顯示分數;[limit offset count]:offset,表明從腳標為offset的元素開始並返回count個成員
2)zincrby key increment member:設置指定成員的增加的分數,返回值是更改後的分數
3)zcount key min max:獲取分數在[min,max]之間的成員
4)zrank key member:返回成員在集合的排名.(從小到大)
5)zrevrank key member:返回成員在集合中的排名:(從大到小)

Redis數據結構04-SortedSet