小貝_redis set/zset類型學習,_rediszset
redis set、zset類型
一、集合類型
二、查看set、zset集合類型命令
三、set、zset集合類型執行個體
一、集合類型
1、redis的集合類型,分為兩種,即有序和無序。
2、既然是集合類型,因此也要滿足集合的特性即
a、集合的確定性: 組成集合的元素的性質必須明確,不允許有模稜兩可、含混不清的情況
b、集合的互異性: 對於一個給定的集合,集合中的元素是互異的”,就是說,“對於一個給定的集合,它的任何兩個元素都是不同的
c、集合的無序性: 指表示一個集合時,構成這個集合的元素是無序的
3、集合分類(假設集合A和集合B都是非空)
a、並集: 去掉集合A和集合B的公用部分的元素,組成新的集合
b、交集: 擷取集合A和集合B的公告部分的元素,組成新的集合
c、空集: 空元素的集合
二、查看set、zset集合類型命令
1、set類型命令說明
命令名稱 |
格式 |
說明 |
sadd |
sadd key member |
將member元素加入到key當中 |
srem |
srem key member |
移除集合key中的元素member |
smembers |
smembers key |
列舉集合key的所有元素 |
sismembers |
sismembers key member |
判斷member元素是否是集合key的元素 |
scard |
scard key |
擷取集合key的元素個數 |
smove |
smove source destination member |
將member元素從source集合移動到destination集合 |
spop |
spop key |
移除並返回集合中的一個隨機元素 |
srangmember |
srangmember key |
返回集合中的一個隨機元素 |
sinter |
sinter key key1… |
返回一個集合的全部成員,該集合是所有給定集合的交集。 不存在的key被視為空白集。 當給定集合當中有一個空集時,結果也為空白集(根據集合運算定律)。 |
sinterstore |
sinterstore destination key key1… |
此命令等同於sinter,但它將結果儲存到destination集合,而不是簡單地返回結果集。如果destination集合已經存在,則將其覆蓋 |
sunion |
sunion key key1 |
返回一個集合的全部成員,該集合是所有給定集合的並集。 不存在的key被視為空白集 |
sunionstore |
sunionstore destination key key1… |
此命令等同於sunion,但它將結果儲存到destination集合,而不是簡單地返回結果集。如果destination已經存在,則將其覆蓋 |
sdiff |
sdiff key key1 |
返回一個集合的全部成員,該集合是所有給定集合的差集 。不存在的key被視為空白集 |
sdiffstore |
sdiffstore destination key key1… |
此命令等同於sdiff,但它將結果儲存到destination集合,而不是簡單地返回結果集。如果destination集合已經存在,則將其覆蓋 |
2、zset類型命令說明
命令名稱 |
格式 |
說明 |
zadd |
zadd key score member |
將member元素及其score值加入到有序集key當中。 score值可以是整數值或雙精確度浮點數。 |
zrem |
zrem key member |
移除有序集key中的成員member,如果member不是有序集中的成員,那麼不執行任何動作。當key存在但不是有序集類型時,返回一個錯誤 |
zcard |
zcard key |
返回有序集key的基數 |
zcount |
zcount key min max |
返回有序集key中,score值在min和max之間(預設包括score值等於min或max)的成員 |
zscore |
zscore key member |
返回有序集key中,成員member的score值 |
zincrby |
zincrby key increment member |
為有序集key的成員member的score值加上增量increment |
zrange |
zrange key start stop [WITHSCORES] |
返回有序集key中,指定區間內的成員。其中成員的位置按score值遞增(從小到大)來排序 |
zrevrange |
zrevrange key start stop [WITHSCORES] |
返回有序集key中,指定區間內的成員。其中成員的位置按score值遞減(從大到小)來排列 |
zrangebyscore |
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] |
返回有序集key中,所有score值介於min和max之間(包括等於min或max)的成員。有序整合員按score值遞增(從小到大)次序排列 |
zrevrangebyscore |
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] |
返回有序集key中,score值介於max和min之間(預設包括等於max或min)的所有的成員。有序整合員按score值遞減(從大到小)的次序排列。 |
zrank |
zrank key member |
返回有序集key中成員member的排名。其中有序整合員按score值遞增(從小到大)順序排列。排名以0為底,也就是說,score值最小的成員排名為0。 |
zrevrank |
zrevrank key member |
返回有序集key中成員member的排名。其中有序整合員按score值遞減(從大到小)排序。排名以0為底,也就是說,score值最大的成員排名為0。 |
zremrangebyrank |
zremrangebyrank key start stop |
除有序集key中,指定排名(rank)區間內的所有成員。 區間分別以下標參數start和stop指出,包含start和stop在內 |
zremrangebyscore |
zremrangebyscore key min max |
移除有序集key中,所有score值介於min和max之間(包括等於min或max)的成員 |
zinterstore |
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] |
計算給定的一個或多個有序集的交集,其中給定key的數量必須以numkeys參數指定 |
zunionstore |
zunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] |
計算給定的一個或多個有序集的並集,其中給定key的數量必須以numkeys參數指定。預設情況下,結果集中某個成員的score值是所有給定集下該成員score值的和 |
3、set類型命令例子
3.1、為集合user,添加元素‘xiaobei’
127.0.0.1:6379> sadd user xiaobei
(integer) 1
3.2、查看集合user的所有元素
127.0.0.1:6379>smembers user
1)"xiaobei"
3.3、判斷xiaobei是否是集合user的元素
127.0.0.1:6379>sismember user xiaobei
(integer) 1
3.4、移除集合user的元素 xiaobei
127.0.0.1:6379> sremuser xiaobei
(integer) 1
3.5、判斷集合user的個數
127.0.0.1:6379> sadduser xiaobei
(integer) 1
127.0.0.1:6379> sadduser script-boy
(integer) 1
127.0.0.1:6379>scard user
(integer) 2
3.6、把集合user的元素script-boy移動到集合user1中
127.0.0.1:6379>smove user user1 script-boy
(integer) 1
127.0.0.1:6379>smembers user1
1)"script-boy"
3.7、求集合user和集合user1
127.0.0.1:6379>smembers user
1)"script-boy"
2) "xiaobei"
127.0.0.1:6379>smembers user1
1)"script-boy"
127.0.0.1:6379>sinter user user1
1)"script-boy"
3.8、把集合user和集合user1的交集儲存在user2中
127.0.0.1:6379>sinterstore user2 user1 user
(integer) 1
127.0.0.1:6379>smembers user2
1)"script-boy"
3.9、求集合user和集合user1的並集
127.0.0.1:6379>sunion user user1
1)"script-boy"
2) "xiaobei"
3.10、求集合user和集合user1的並集儲存在user2中
127.0.0.1:6379>sunionstore user2 user user1
(integer) 1
127.0.0.1:6379>smembers user2
1)"script-boy"
3.11、求集合user1對集合user的差集
127.0.0.1:6379>smembers user
1)"script-boy"
127.0.0.1:6379>smembers user1
1)"script-boy"
2) "xiaobei"
127.0.0.1:6379>sdiff user1 user
1) "xiaobei"
3.12、把集合user1對集合user的差集儲存在user2
127.0.0.1:6379>sdiffstore user2 user1 user
(integer) 1
127.0.0.1:6379>smembers user2
1) "xiaobei"
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。