1. Set集合介绍
Set数据有几个特点:
- 无序的、去重的
- 元素是字符串类型
- 最多包含232-1个元素
2. Set指令
2.1 增加一个或多个元素
sadd key member [member ...]
127.0.0.1:6379> sadd friends hanmeimei
1
127.0.0.1:6379> sadd friends lilei piter poly
3
127.0.0.1:6379> sadd friends lucy lilei
1
127.0.0.1:6379> sadd friends lilei
0
127.0.0.1:6379>
2.2 查看所有元素
smembers key
127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
lucy
lilei
127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
lucy
lilei
127.0.0.1:6379>
注意:虽然是无序的,但是数据少,可能要进行大量测试才能看出
2.3 返回集合中元素的个数
scard key
127.0.0.1:6379> scard friends
5
127.0.0.1:6379>
2.4 移除一个或者多个元素
srem key member [member ...]
127.0.0.1:6379> sadd friends a b c d
4
127.0.0.1:6379> smembers friends
hanmeimei
piter
poly
c
b
a
lucy
lilei
d
127.0.0.1:6379> srem friends a
1
127.0.0.1:6379> smembers friends
piter
poly
c
b
lucy
lilei
hanmeimei
d
127.0.0.1:6379> srem friends b c d
3
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
piter
lucy
127.0.0.1:6379>
2.5 检查元素是否存在集合中
sismember key member
127.0.0.1:6379> sismember friends lucy
1
127.0.0.1:6379> sismember friends a
0
127.0.0.1:6379>
2.6 随机返回集合中指定个数的元素
srandmember key [count]
- count 不指定,随机返回一个元素
- count = 0,返回空
- count > 0,若count小于集合中元素的个数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。若 count 大于等于集合中元素的个数,那么返回整个集合
- count < 0,返回长度为count绝对值长度的数组,数据中的元素可能会重复
127.0.0.1:6379> srandmember friends
poly
127.0.0.1:6379> srandmember friends 0
127.0.0.1:6379> srandmember friends 3
hanmeimei
piter
lucy
127.0.0.1:6379> srandmember friends 10
lilei
hanmeimei
poly
piter
lucy
127.0.0.1:6379> srandmember friends -3
piter
poly
poly
127.0.0.1:6379>
用处:适合抽奖
2.7 随机移除一个元素并返回此元素
spop key
127.0.0.1:6379> spop friends
lucy
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
piter
127.0.0.1:6379>
2.8 把元素从源集合移动到目标集合
smove key dest member
127.0.0.1:6379> smove friends fs piter
1
127.0.0.1:6379> smembers friends
lilei
hanmeimei
poly
127.0.0.1:6379> smembers fs
piter
127.0.0.1:6379>
2.9 差集
-
sdiff key [key ...]
差集,具有方向性 -
sdiffstore destination key [key ...]
将差集结果存储在目标key中
127.0.0.1:6379> sadd no1 1 2 3 4 5
5
127.0.0.1:6379> sadd no2 4 5 6 7 8
5
127.0.0.1:6379> sdiff no1 no2
1
2
3
127.0.0.1:6379> sdiff no2 no1
6
7
8
127.0.0.1:6379> sdiffstore no3 no1 no2
3
127.0.0.1:6379> smembers no3
1
2
3
127.0.0.1:6379>
2.10 交集
sinter key [key ...]
-
sinterstore destination key [key ...]
将交集结果存储在目标key中
127.0.0.1:6379> sinter no1 no2
4
5
127.0.0.1:6379> sinterstore no4 no1 no2
2
127.0.0.1:6379> smembers no4
4
5
127.0.0.1:6379>
用处:使用交集,可以统计2个账户的共同好友或者共同关注的人
2.11 并集
sunion key [key ...]
-
sunionstore destination key [key ...]
将并集结果存储在目标key中
127.0.0.1:6379> sunion no1 no2
1
2
3
4
5
6
7
8
127.0.0.1:6379> sunionstore no5 no1 no2
8
127.0.0.1:6379> smembers no5
1
2
3
4
5
6
7
8
127.0.0.1:6379>
网友评论