redis set型別和zset型別

2021-07-25 23:12:38 字數 2673 閱讀 1467

一.set型別

set是乙個集合,它是string型別的無序集合,set是通過hash table實現的,新增,刪除,查詢的時間複雜度都是o(1),對於集合我們可以取並集,交集,差集。通過這些操作我們可以實現sns中好友推薦和blog的tag

set常用命令:

(1)sadd:

向乙個集合中新增乙個元素。例如:sadd set1 hello

(2)smembers

檢視集合中的所有元素。例如:smembers set1
(3)srem

刪除集合中乙個指定的元素。例如:srem set1 hello
(4)spop

隨機彈出set集合中德乙個元素。例如:spop set1
(5)sdiff

求兩個集合的差集,比如sdiff set1 set2,表示保留set1中與set2不同的所有元素。
(6)sdiffstore

將返回的差集存進乙個集合。例如:sdiffstore set3 set1 set2,表示把set1與set2的差集存進

集合set3。

(7)sinter

返回給定兩個集合的交集。例如:sinter set1 set2,表示返回set1和set2的交集。
(8)sinterstore

將兩個集合的交集存進乙個集合。例如:sinterstore set3 set1 set2,表示把set1和set2的交集

存進集合set3。

(9)sunion

返回給定兩個集合的並集。例如:sunion set1 set2,表示返回set1和set2的並集。
(10)sunionstore

將兩個集合的並集存進乙個集合。例如:sunionstore set3 set1 set2,表示把set1和set2的並集

存進集合set3

(11)smove

從第乙個key對應的set中移除member並新增到第二個對應的集合中。

例如:smove set1 set2 hello,表示把set1中的hello元素移動到set2中。

(12)scard

返回key對應集合的元素的個數。例如:scard set1。
(13)sismember

判斷某乙個元素是否為集合的元素。比如:sismember set1 hello,表示判斷hello是否為set1的中

的元素。

(14)srandmember

隨機返回名稱為key的set的乙個元素。例如:srandmember set1。
二.zset型別

zset是在set的基礎上增加了順序,形成乙個有序的集合。

zset的常見操作:

(1)zadd

向有序集合zset中增加乙個元素。例如:zadd zset 1 hello
(2)zrange

輸出zset中指定範圍內的的所有元素,按照score從小到大的順序。

例如:zrange zset 0 -1 withscores,表示輸出有序集 合zset中所有的元素,並且輸出順序號。

(3)zrem

刪除名稱為key的zset集合中的元素member。例如:zrem set1 hello。
(4)zincrby

把有序集合zset中的指定元素的序列號加上指定的值。例如:zincrby zset 4 hello
(5)zrank

返回名稱為key的zset集合中元素的排名,按照下標從小到大的排名。例如:zrank zset hello。
(6)zrevrank

返回名稱為key的zset集合中元素的排名,按照下表從大到小的排名。例如:zrevrank zset hello。
(7)zrevrange

按照score從大到小的順序輸出集合中所有元素。例如:zrevrange zset 0 -1 withscores。
(8)zrangebyscore

返回集合中給定區間的元素。例如:zrangebyscore zset 2 3 withscores
(9)zcount

返回集合中score在給定區間的數量。zcount zset 2 3
(10)zcard

返回集合中元素的個數。
(11)zremrangebyrank

按照索引來刪除給定區間的元素。例如:zremrangebyrank zset 1 2
(12)zremrangebyscore

刪除score在指定範圍內的元素。例如:zremrangebyscore zset 1 2

Redis Set型別常用操作命令

集合 set 的特點 無序性 唯一性,結合裡面的值是唯一的。1.sadd key value1 value2.value3 建立並增加元素到集合 sadd student john lucy 當再次新增lucy時,會不成功,因為集合裡面已經有lucy元素 2.smembers key 檢視集合中的所...

Redis set 型別與效能檢測

127.0.0.1 6379 sadd num 1 2 3 4 5 建立整數集合 integer 5 127.0.0.1 6379 object encoding num intset 127.0.0.1 6379 sadd num a 在整數集合中加入非整數元素 integer 1 127.0.0...

zset資料型別

應用場景 排行榜redis有序集合型別鍵的設定 1.zadd 將乙個或多個 member 元素及其 score 值加入到有序集 key 當中 2.zincrby 為有序集 key 的成員 member 的 score 值加上增量 increment 可負 redis有序集合型別鍵的查詢 1.zcar...