峰Redis学习(5)Redis 数据结构(Set的操作)

第五节:Redis 数据结构之Set 类型
存储Set,这里的Set是无序的;
 和List类型不同的是,Set集合中不允许出现重复的元素
 Set可包含的最大元素数量是4294967295
 
存储set常用命令:
添加/删除元素
获取集合中的元素
集合中的差集运算
集合中的交集运算
集合中的并集元算
扩展命令
 
添加set元素
查看set1中所有元素
127.0.0.1:6379> sadd set1 a b c
(integer) 3
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "a"
无法添加重复元素:
127.0.0.1:6379> sadd set1 a d e
(integer) 2
127.0.0.1:6379> smembers set1
1) "d"
2) "b"
3) "c"
4) "a"
5) "e"
删除元素
127.0.0.1:6379> srem set1 a d
(integer) 2
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
判断某个元素是否存在 返回1 表示存在 返回0表示不存在
127.0.0.1:6379> sismember set1 a
(integer) 0
127.0.0.1:6379> sismember set1 b
(integer) 1
sdiff计算差集
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> sadd set3 b c d e
(integer) 4
127.0.0.1:6379> sdiff set2 set3
1) "a"
127.0.0.1:6379> sdiff set3 set2
1) "d"
2) "e"
sinter计算交集
127.0.0.1:6379> sinter set2 set3
1) "b"
2) "c"
sunion计算并集
127.0.0.1:6379> sunion set2 set3
1) "a"
2) "b"
3) "d"
4) "c"
5) "e"
scard计算元素总数
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> scard set1
(integer) 3
srandmember 随机取一个/n个元素
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> srandmember set1 
"e"
127.0.0.1:6379> srandmember set1 2
1) "c"
2) "e"
比如猜你喜欢,随机选几个;
 
 
sdiffstore 把差集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sdiffstore r1 set1 set2
(integer) 1
127.0.0.1:6379> smembers r1
1) "e"
sinterstore 把交集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sinterstore r2 set1 set2
(integer) 2
127.0.0.1:6379> smembers r2
1) "b"
2) "c"
sunionstore把并集结果存储到新集合中
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> smembers set2
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> sunionstore r3 set1 set2
(integer) 4
127.0.0.1:6379> smembers r3
1) "b"
2) "c"
3) "a"
4) "e"
存储Set使用场景
 跟踪一些唯一性数据
 用于维护数据对象之间的关联关系
原文地址:https://www.cnblogs.com/tenWood/p/8684933.html