【Redis学习】:set数据类型详解

来源:互联网 发布:手机期货软件排行 编辑:程序博客网 时间:2024/06/05 10:14
set数据结构


常用命令
添加/删除元素
sadd key values[value1 value2 ...]
向set中添加数据,如果该key的值已有不会重复添加。


srem key members[member1 member2 ...]
删除set中指定的成员


获得集合中的元素
smembers key
获取set中的所有成员


sismember key member
判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在,无论集合中有多少元素都可以极速的返回结果。


集合的差集运算A-B
sdiff key1 key2 ...
返回key1和key2中相差的成员,而且与key的顺序有关,也即是说返回差集。

结果:


集合的交集运算A∩B
sinter key1 key2 ...
返回交集

结果:


集合的并集运算A∪B
sunion key1 key2 ,,,
返回并集

结果:


scard key
获取set中成员的数量


srandmember key
随机返回set中的一个成员


sdiffstore destination key1 key2 ..
.
将key1.key2等set集合相差的成员存储在destination中


sinterstore destination key1 key2 ...
将key1.key2等set集合返回的交集存储在destination中


sunionstore destination key1 key2 ...
将key1.key2等set集合返回的并集存储在destination中


使用场景
1、可以使用redis的set数据类型跟踪一些唯一性的数据,比如访问某一博客的唯一IP地址信息,对于此场景,我们仅需在每次访问该博客时将访问者的IP存入redis中,set数据类型会自动保证IP地址的唯一性;
2、充分利用set数据类型的服务端聚合操作方便,高效的特性,可以用于维护数据对象之前的关联关系。比如所有购买某一电子设备的客户ID被存储在一个指定的set中,而购买另一种电子产品的客户ID被存储在另一个set中,如果此我们想获取有哪些客户同时购买了这两种商品,set的intersections命令就可以充分发挥它的方便和高效的优势。
intersections命令就可以充分发挥它的方便和高效的优势。