set集合是无序、key不可重复的
sadd
添加一个sadd集合
语法:sadd <key> <value1> <value2>
1 2 3
| # 新建一个set集合set1 127.0.0.1:6379> sadd set1 v1 v2 v3 v4 (integer) 4
|
smembers
查看set集合中所有元素
1 2 3 4 5 6
| # 查看set1集合中所有元素 127.0.0.1:6379> smembers set1 1) "v3" 2) "v2" 3) "v1" 4) "v4"
|
sismember
判断set集合中是否存在某值
1 2 3 4 5 6
| # 判断set1集合中是否存在v1 127.0.0.1:6379> sismember set1 v1 (integer) 1 # 判断set1集合中是否存在v5 127.0.0.1:6379> sismember set1 v5 (integer) 0
|
scard
返回set集合中元素的个数
1 2 3
| # 返回set1集合中元素的个数 127.0.0.1:6379> scard set1 (integer) 4
|
srem
删除集合中的指定元素
语法:srem <key> <value1> <value2>……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 查看set1集合中所有元素 127.0.0.1:6379> smembers set1 1) "v3" 2) "v2" 3) "v1" 4) "v4" # 删除set1中的v1和v2 127.0.0.1:6379> srem set1 v1 v2 (integer) 2 # 查看set1集合中所有元素 127.0.0.1:6379> smembers set1 1) "v3" 2) "v4" # 删除set1中的v3 127.0.0.1:6379> srem set1 v3 (integer) 1 # 查看set1集合中所有元素 127.0.0.1:6379> smembers set1 1) "v4"
|
spop
随机从集合中吐出一个值
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 新建一个set集合set2 127.0.0.1:6379> sadd set2 v1 v2 v3 v4 (integer) 4 # 随机从集合中吐出一个值 127.0.0.1:6379> spop set2 "v1" 127.0.0.1:6379> spop set2 "v3" 127.0.0.1:6379> spop set2 "v4" 127.0.0.1:6379> spop set2 "v2" 127.0.0.1:6379> spop set2 (nil)
|
srandmember
随机集合中取出n个值,但是不会删除集合中的元素
语法:srandmember <key> <n>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| # 新建一个set集合set3 127.0.0.1:6379> sadd set3 v1 v2 v3 v4 (integer) 4 # 随机吐出2个值 127.0.0.1:6379> srandmember set3 2 1) "v2" 2) "v3" 127.0.0.1:6379> srandmember set3 2 1) "v1" 2) "v3" 127.0.0.1:6379> srandmember set3 2 1) "v2" 2) "v4" 127.0.0.1:6379> srandmember set3 2 1) "v1" 2) "v2" # 查看set3中所有元素,可见set3中的元素并没有删除 127.0.0.1:6379> smembers set3 1) "v3" 2) "v2" 3) "v1" 4) "v4"
|
smove
把集合中的一个值移动到另一个集合中去
语法:smove <源集合> <目标集合> <value>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 新建一个集合set4 127.0.0.1:6379> sadd set4 v1 v2 (integer) 2 # 新建一个集合set5 127.0.0.1:6379> sadd set5 v3 v4 (integer) 2 # 将set4中的v1移动到set5中 127.0.0.1:6379> smove set4 set5 v1 (integer) 1 # 查看set4中的所有元素 127.0.0.1:6379> smembers set4 1) "v2" # 查看set5中的所有元素 127.0.0.1:6379> smembers set5 1) "v1" 2) "v3" 3) "v4"
|
sinter
返回两个集合的交集元素
语法:sinter <key1> <key2>
1 2 3 4 5 6 7 8 9
| # 新建两个set集合s1、s2 127.0.0.1:6379> sadd s1 v1 v2 v3 v4 (integer) 4 127.0.0.1:6379> sadd s2 v3 v4 v5 v6 (integer) 4 # 返回s1、s2的交集元素 127.0.0.1:6379> sinter s1 s2 1) "v3" 2) "v4"
|
sunion
返回两个集合的并集元素
语法:suinon <key1> <key2>
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 新建两个set集合s3、s4 127.0.0.1:6379> sadd s3 v1 v2 v3 v4 (integer) 4 127.0.0.1:6379> sadd s4 v3 v4 v5 v6 (integer) 4 # 返回s3、s4的并集元素 127.0.0.1:6379> sunion s3 s4 1) "v1" 2) "v5" 3) "v3" 4) "v2" 5) "v6" 6) "v4"
|
sdiff
返回两个集合中的差集(补集)元素(包含在key1中但是不包含key2中的)
语法:sdiff <key1> <key2>
1 2 3 4 5 6 7 8 9
| # 新建两个set集合s5、s6 127.0.0.1:6379> sadd s5 v1 v2 v3 v4 (integer) 4 127.0.0.1:6379> sadd s6 v3 v4 v5 v6 (integer) 4 # 返回s5、s6的差集元素 127.0.0.1:6379> sdiff s5 s6 1) "v1" 2) "v2"
|