目录
存储set
说明
常用命令:
用处:set使用场景
没有排序的字符集合,和list一样。可添加,删除,或判断元素是否存在的操作。(1)和list类型不同,不允许出现重复的元素。和c++的set容器是完全相同。set类型功能上存在服务器端完成聚合计算。效率很高,节省网络的开销。(2)最大允许元素4294967295。
(1)添加和删除元素(重复的元素无法添加,sadd,srem)
添加命令:sadd myset(set的名称) a b c(数据)
删除命令:srem myset(set的名称) 1 2(数据)
127.0.0.1:6379> sadd myset a b c
(integer) 3
127.0.0.1:6379> sadd myset a
(integer) 0
127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
127.0.0.1:6379> srem myset 1 2
(integer) 2
(2)获得集合中的元素(smembers , sismember)
查询元素:smembers myset
判断是否存在: sismember myset a(判断set中是否存在a元素,存在则返回1,不存在则返回0)
127.0.0.1:6379> smembers myset
1) "b"
2) "a"
3) "3"
4) "c"
127.0.0.1:6379> sismember myset a
(integer) 1
127.0.0.1:6379> sismember myset x
(integer) 0
(3)集合中的差集运算(sdiff)
返回两个集合当中相差的成员,与key的顺序有关系的。(mya1和myb1相差b)
127.0.0.1:6379> sadd mya1 a b c
(integer) 3
127.0.0.1:6379> sadd myb1 a c e 1 2
(integer) 5
127.0.0.1:6379> sdiff mya1 myb1
1) "b"
(4)集合中的交集运算(sinter)
相交a c
127.0.0.1:6379> sadd mya2 a b c
(integer) 3
127.0.0.1:6379> sadd myb2 a c 1 2
(integer) 4
127.0.0.1:6379> sinter mya2 myb2
1) "c"
2) "a"
(5)集合中的并集运算
127.0.0.1:6379> sadd mya3 a b c
(integer) 3
127.0.0.1:6379> sadd myb3 a c 1 2
(integer) 4
127.0.0.1:6379> sunion mya3 myb3
1) "b"
2) "1"
3) "a"
4) "2"
5) "c"
(6)扩展命令
查看具体数量:scard
127.0.0.1:6379> scard myset
(integer) 4
随机提取元素:srandmember
127.0.0.1:6379> srandmember myset
"b"
127.0.0.1:6379> srandmember myset
"a"
127.0.0.1:6379> srandmember myset
"b"
将两个集合相差的成员存储到另一个集合中:sdiffstore
127.0.0.1:6379> sdiffstore my1 mya1 myb1
(integer) 1
127.0.0.1:6379> smembers my1
1) "b"
将两个集合交际的成员存储到另一个集合中:sinterstore
127.0.0.1:6379> sinterstore my2 mya1 myb1
(integer) 2
127.0.0.1:6379> sinter mya1 myb1
1) "c"
2) "a"
127.0.0.1:6379> smembers my2
1) "a"
2) "c"
并集存储
127.0.0.1:6379> sunion mya3 myb3
1) "b"
2) "1"
3) "a"
4) "2"
5) "c"
127.0.0.1:6379> sunionstore my3 mya3 myb3
(integer) 5
127.0.0.1:6379> smembers my3
1) "b"
2) "1"
3) "a"
4) "2"
5) "c"
(1)跟踪唯一性数据
(2)用于维护对象之间的关联关系
redis跟踪数据唯一性,访问博客的唯一性。每次访问把访问者ip存储set中,保证了唯一性。充分用服务器端聚合高效,维护数据对象关联关系,如购买电子设备的id,存储到set中,另外购买的id存储到set中,可以比较交际查看到这个用户购买了哪些电器。