Set(集合)
set中的值是不能重复的!
set命令都是以s开头的
添加 查询
sadd 【集合】【值】:set集合中添加元素
smembers 【集合】:查看指定set的所有值
sismember 【集合】【元素】:判断一个值是不是在set集合中
127.0.0.1:6379> sadd myset hello # 添加元素
(integer) 1
127.0.0.1:6379> sadd myset zhao
(integer) 1
127.0.0.1:6379> sadd myset jiu
(integer) 1
127.0.0.1:6379> smembers myset # 查看指定set的所有值
1) "jiu"
2) "zhao"
3) "hello"
127.0.0.1:6379> sismember myset hello #判断一个值是不是在set集合中
(integer) 1
元素数量
命令:scard 【集合】
127.0.0.1:6379> smembers myset
1) "jiu"
2) "zhao"
3) "hello"
127.0.0.1:6379> scard myset # 获取set 集合中的内容个数
(integer) 3
元素移除
命令:srem 【集合】【元素】:移除set集合中的制定元素
127.0.0.1:6379> smembers myset
1) "jiu"
2) "zhao"
3) "hello"
127.0.0.1:6379> srem myset hello #移除集合myset中hello
(integer) 1
127.0.0.1:6379> smembers myset
1) "jiu"
2) "zhao"
随机抽选set集合中的元素
srandmember 【集合】:随机抽选出一个元素
srandmember 【集合】 【数量】:随机抽选出指定数量的元素
127.0.0.1:6379> smembers myset
1) "jiu"
2) "zhao"
127.0.0.1:6379> srandmember myset # 随机抽选出一个元素
"jiu"
127.0.0.1:6379> srandmember myset
"zhao"
127.0.0.1:6379> srandmember myset
"zhao"
127.0.0.1:6379> srandmember myset
"zhao"
127.0.0.1:6379> srandmember myset
"zhao"
127.0.0.1:6379> srandmember myset
"zhao"
127.0.0.1:6379> srandmember myset
"jiu"
127.0.0.1:6379> srandmember myset 2 # 随机抽选出指定个数的元素
1) "zhao"
2) "jiu"
127.0.0.1:6379> srandmember myset 2
1) "zhao"
2) "hahah"
随机移除一个
127.0.0.1:6379> smembers myset
1) "jiu"
2) "zhao"
3) "hahah"
127.0.0.1:6379> spop myset
"zhao"
127.0.0.1:6379> spop myset
"hahah"
127.0.0.1:6379> smembers myset
1) "jiu"
将集合中指定的元素移动到另一个集合中
smove 【原集合】【其他集合】【原集合某个元素】
127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd otherset word
(integer) 1
127.0.0.1:6379> smove myset otherset hello
(integer) 1
127.0.0.1:6379> smembers myset
(empty list or set)
127.0.0.1:6379> smembers otherset
1) "hello"
2) "word"
微博,B站,共同关注(并集)
数字集合类
- 差集
- 交集
- 并集
127.0.0.1:6379> sadd myset a
(integer) 1
127.0.0.1:6379> sadd myset b
(integer) 1
127.0.0.1:6379> sadd myset c
(integer) 1
127.0.0.1:6379> sadd myset2 c
(integer) 1
127.0.0.1:6379> sadd myset2 e
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> sadd myset2 d
(integer) 1
127.0.0.1:6379> sdiff myset myset2 # 差集
1) "b"
2) "a"
127.0.0.1:6379> sinter myset myset2 # 交集 公共好友/共同关注
1) "c"
127.0.0.1:6379> sunion myset myset2 # 并集
1) "b"
2) "c"
3) "d"
4) "a"
5) "e"
使用场景:
微博, 共同关注、共同好友、共同爱好、二度好友(推荐好友)