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 ....
返回key1
和key2
或更多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 ...
將key1
和key2
或更多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
將value
從key1
中移動到key2