集合(set):唯一、无序
的字符串元素的集合。
直接开撸!
Set命令
set命令都是以S开头的!!!
SADD
:sadd key member [member …]
SMEMBERS
:smembers key
SISMEMBER
:sismember key member
SCARD
:scard key
127.0.0.1:6379> sadd myset "hi" # 向set集合中添加元素(可以一次添加多个值)
(integer) 1
127.0.0.1:6379> sadd myset "oldfe"
(integer) 1
127.0.0.1:6379> smembers myset # 查看指定set的所有值
1) "oldfe"
2) "hi"
127.0.0.1:6379> sismember myset oldfe # 判断某一个值是不是在set集合中,存在返回 1
(integer) 1
127.0.0.1:6379> sismember myset bigshybro # 不存在返回 0
(integer) 0
127.0.0.1:6379> scard myset # 获取set集合中元素个数
(integer) 2
SREM
:srem key member [member …]
127.0.0.1:6379> sadd myset aa bb cc dd # 向set集合中同时添加多个值
(integer) 4
127.0.0.1:6379> smembers myset
1) "cc"
2) "aa"
3) "dd"
4) "bb"
127.0.0.1:6379> srem myset bb # 移除set集合中指定元素
(integer) 1
127.0.0.1:6379> smembers myset
1) "cc"
2) "aa"
3) "dd"
SRANDMEMBER
:srandmember key [count]
127.0.0.1:6379> flushdb # 清除当前数据库
OK
127.0.0.1:6379> sadd myset aa bb cc dd ee ff # 向set集合中同时添加多个值
(integer) 6
127.0.0.1:6379> smembers myset
1) "dd"
2) "bb"
3) "ee"
4) "aa"
5) "cc"
6) "ff"
127.0.0.1:6379> srandmember myset 2 # 随机抽选中2个元素(可指定个数)
1) "cc"
2) "aa"
127.0.0.1:6379> srandmember myset 2
1) "ee"
2) "cc"
127.0.0.1:6379> srandmember myset 2
1) "aa"
2) "dd"
SPOP
:spop key [count]
127.0.0.1:6379> smembers myset
1) "dd"
2) "ee"
3) "aa"
4) "cc"
5) "ff"
6) "bb"
127.0.0.1:6379> spop myset # 随机删除set集合中的一些元素(可指定移除个数)
"ff"
127.0.0.1:6379> spop myset
"bb"
127.0.0.1:6379> spop myset
"dd"
127.0.0.1:6379> smembers myset
1) "ee"
2) "aa"
3) "cc"
SMOVE
:smove source destination member
127.0.0.1:6379> sadd set1 aa bb
(integer) 2
127.0.0.1:6379> sadd set2 cc
(integer) 1
127.0.0.1:6379> smove set1 set2 bb # 将一个元素,移动到另外一个set集合中
(integer) 1
127.0.0.1:6379> smembers set1
1) "aa"
127.0.0.1:6379> smembers set2
1) "cc"
2) "bb"
SDIFF
:sdiff key [key …]
SINTER
:sinter key [key …]
SUNION
:sunion key [key …]
127.0.0.1:6379> sadd set1 aa
(integer) 1
127.0.0.1:6379> sadd set1 bb
(integer) 1
127.0.0.1:6379> sadd set2 bb
(integer) 1
127.0.0.1:6379> sadd set2 cc
(integer) 1
127.0.0.1:6379> sdiff set1 set2 # 差集
1) "aa"
127.0.0.1:6379> sinter set1 set2 # 交集
1) "bb"
127.0.0.1:6379> sunion set1 set2 # 并集
1) "cc"
2) "aa"
3) "bb"
总结!
set集合可以用作我们的抽奖程序!好友共同关注!共同爱好。。。
图片来自redis中文网: