Redis中set集合(無序)操作命令


set集合(無序)

set是一個無序的不重復元素的集合


sadd

往集合內部添加元素

127.0.0.1:6379> sadd set1 a b c d
(integer) 4
127.0.0.1:6379> smembers set1
1) "d"
2) "a"
3) "b"
4) "c"
127.0.0.1:6379>

如果指定的key不存在會創建


srem

移除元素

127.0.0.1:6379> srem set1 c 
(integer) 1
127.0.0.1:6379> smembers set1
1) "d"
2) "a"
3) "b"
127.0.0.1:6379>

如果要移除的元素不存在,則返回0
可以同時移出多個

spop

隨機彈出一個元素

127.0.0.1:6379> spop set1
"d"
127.0.0.1:6379> smembers set1
1) "a"
2) "b"
127.0.0.1:6379>

因為set是無序的,如果要修改某個元素的值,直接將它刪除在添加一個新的即可,修改真正的意義是替換,可是
set沒有位置的概念(無序),替換就成了毫無意義的事情

scard

scard key
返回set中的元素的個數

如果查詢一個不存在的key,返回0

smembers

smembers key
返回集合中所有的元素

sismember

sismember key value
查詢value是否存在於key,存在返回1,否則返回0

srandmember

srandmember key [count]
隨機返回count個集合中元素,注意count不能大於集合內部元素數

127.0.0.1:6379> srandmember set2
"3"
127.0.0.1:6379> srandmember set2 3
1) "96"
2) "2"
3) "5"

交集

sinter

sinter key1 key2 ....
返回key1key2或更多key中的交集(相同元素)

127.0.0.1:6379> sadd set1 1 2 3 45 6
(integer) 5
127.0.0.1:6379> sadd set2 8 5 2 96 3
(integer) 5
127.0.0.1:6379> sinter set1 set2
1) "2"
2) "3"

sinterstore

sinterstore newkey key1 key2 ...
key1key2或更多key的交集合並到新的集合newkey

127.0.0.1:6379> sinterstore set3 set1 set2
(integer) 2
127.0.0.1:6379> smembers set3
1) "2"
2) "3"

並集

sunion

sunion key1 key2 ...

將所有的key的元素合並返回,重復的值將只保留一個

127.0.0.1:6379> sunion set1 set2
 1) "45"
 2) "a"
 3) "b"
 4) "2"
 5) "5"
 6) "1"
 7) "3"
 8) "96"
 9) "8"
10) "6"

sunionstore

sunionstore newkey key1 key2....

sinterstore類型,將並集移到newkey

差集

sdiff

sdiff key1 key2 ...
返回所有key的差集

sdiffstore

sdiffstore newkey key1 key2 ...

將所有key的差集移入newkey

移動

smove

smove key1 key2 value
valuekey1中移動到key2


免責聲明!

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



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