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
