打赏

06_Redis_Set命令

一:Redis 集合(Set) 

  Redis 的 Set 是 String 类型的无序集合;集合成员是唯一的,这就意味着集合中不能出现重复的数据 -------- HashSet(无序不重复)。

  Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

  集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

二:Redis命令:通常涉及到两个大数据集合的并集,交集,差集运算

  2.1:赋值:sadd key values[value1value2…]:向set中添加数据,如果该key的值已有则不会重复添加

    

  2.2:取值:smembers key:获取set中所有的成员

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

  2.3:删值:srem key members[member1member2…]:删除set中指定的成员

    

集合运算:

  2.4:差集运算sdiff key1 key2…:返回key1key2中相差的成员,而且key顺序有关返回差集

    

    (属于A并且不属于B的元素构成的集合)

  2.5:交集运算sinter key1 key2 key3返回交集

    

    (属于A且属于B的元素构成的集合)

  2.6:并集运算sunion key1 key2 key3返回并集

    

     属于A或者属于B的元素构成的集合)

  2.7:扩展命令:scard key:获取set中成员的数量

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

         

三:Set使用场景

1、可以使用Redis的set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,set数据类型会自动保证IP地址的唯一性。

2、充分利用set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如所有购买某一电子设备的客户id被存储在一个指定的set中,而购买另外一种电子产品的客户id被存储在另外一个set中,如果此时我们想获取有哪些客户同时购买了这两种商品时,set的intersections命令就可以充分发挥它的方便和效率的优势了。

 

 

 

 

posted @ 2018-04-28 08:48  QueryMarsBo  阅读(583)  评论(0编辑  收藏  举报