04_Redis數據類型(set、zset)


【set:集合類型(高中的集合知識)】

集合類型:無序、不可重復

列表類型:有序、可重復

 

【set類型】

1.添加元素

語法:sadd key member1 member2......

返回值:返回成功添加的元素個數

2.獲取集合中的所有元素

語法:smembers key

3.刪除集合中某個元素

4.判斷元素是否在集合中

語法:sismember key member

返回值:存在,返回1;不存在,返回0。

【set集合之間的運算】

1.差集A-B

描述:屬於集合A,但不屬於集合B

 

 語法:sdiff key1 key2...

2.集合的交集A∩B

描述:屬於集合A 且屬於集合B的元素構成的集合

3.集合的並集A∪B

描述:屬於A或屬於B的元素構成的集合。

 

 

【集合的其他命令】

1.獲取集合中的元素個數

語法:scard key

2.從集合中彈出一個元素

由於集合是無序的,所有SPOP命令會從集合中隨機彈出一個元素。

 

【SortedSet類型:zset集合】

sortedSet有叫做zset。

zset是有序集合,可排序的,但是要唯一。

zset和set的不同之處在於,zset是會給set的元素添加一個分數,然后通過這個分數進行排序。

 

【zset類型】

1.添加元素

描述:向有序集合zset中添加一個元素和該元素的分數,如果該集合已經存在則會使用新的分數替換原有的分數。

返回值:新加入到集合中的元素的個數,不包含之前已經存在的元素。

語法:zadd key score1 member1 score2 member2 score3 member3......

2.獲取元素的分數

語法:zscore key member

3.刪除元素

描述:刪除有序集合中的一個或多個成員,不存在的成員被忽略。

語法:zrem key member1 member2......

4.獲得排名在某個范圍內的元素列表

描述:按照元素分數從小到大的順序返回索引從start到stop之間的所有元素(包含兩端的元素)

語法:zrange key start stop

描述:按照元素分數從大到小的順序返回索引從start到stop之間的所有元素(包含兩端的元素)

語法:zrevrange key start stop 

描述:如果需要獲得元素的分數,可以在尾部加上withscores參數

語法:zrange key start stop[withscores]

        zrevrange key start stop [withscores]

5.獲取元素的排名

描述:從小到達獲取某個元素的排名

語法:zrank key member

描述:從大到小獲取某個元素的排名

語法:zrevrank key member

6.獲取指定分數范圍內的元素

語法:zrangebyscore key min max [withscores] [limit offset count]

 

7.增加某個元素的分數

語法:zincrby key increment member

注意:不可以將increment和member的順序調換,與之前的不一樣

8.獲取集合中元素的數量

語法:zcard key

9.獲取指定分數范圍內的元素個數

語法:zcount key min max

10.按照分數排名范圍刪除元素

語法:zremrangebyrank key start stop

11.按照分數范圍刪除元素

語法:zremrangebyscore key min max

【zset應用:商品銷售排行榜】

需求:根據商品銷售量對商品進行排名顯示。

思路:定義商品銷售排行榜(sorted set集合),key為items:sellsort,分數為商品的銷售量。

寫入商品銷售量:(編號1001商品,銷售量9;編號1002商品,銷售量10;編號1003商品,銷售量999)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM