Redis学习笔记(六)——数据结构之Set

一、介绍

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

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

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

  

  基本命令:

  • 增加/更新

  sadd key member1 [member2 ...]   (向集合添加一个或多个成员)

 

  • 查询

  scard key  (获取集合的成员数) 

  smembers key  (返回集合中的所有成员)

  srandmember key [count]  (返回集合中一个或多个随机数)

  sscan key cursor [match pattern] [count count]  (迭代集合中的元素)

 

  • 判断

  sismember key member  (判断member元素是否是集合key的成员)

 

  • 删除/移动

  srem key member1 [member2 ...]  (移除集合中一个或多个成员)

  spop key  (移除并返回集合中的一个随机元素) 

  smove source destination member  (将member元素从source集合移动到destination集合) 

 

  • 差集/并集

  sdiff key1 [key2]  (返回给定所有集合的差集)

  sdiffstore destination key1 [key2]  (返回给定所有集合的差集并存储在destination中)

  sinter key1 [key2]  (返回给定所有集合的交集)

  sinterstore destination key1 [key2]  (返回给定所有集合的交集并存储在destination中)

  sunion key1 [key2]  (返回所有给定集合的并集)

  sunionstore destination key1 [key2]  (所有给定集合的并集存储在destination集合中) 

 

 

二、操作

  • 增加

  1、sadd key member1 [member2 ...]   (向集合添加一个或多个成员)

  

 

  如果集合中已存在已有的元素,则添加返回0

  

 

 

  • 查询

  1、scard key  (获取集合的成员数)

  

 

  2、smembers key  (返回集合中的所有成员)

  

 

  3、srandmember key [count]  (返回集合中一个或多个随机数)

  

 

  4、sscan key cursor [match pattern] [count count]  (迭代集合中的元素)

  判断集合元素是否存在(0: 不存在, 1: 存在)

  

 

  

  • 判断

  1、sismember key member  (判断member元素是否是集合key的成员)

  

 

 

  • 删除/移动

  1、srem key member1 [member2 ...]  (移除集合中一个或多个成员)

  如果删除的元素不存在,返回0,删除成功返回1

  

 

  2、spop key  [count] (移除并返回集合中的一个或多个随机元素)

  

 

  3、smove source destination member  (将member元素从source集合移动到destination集合)

  

  

  如果集合中元素不存在,返回0

  

 

 

  • 差集/并集

  1、sdiff key1 [key2]  (返回给定所有集合的差集)

  获取两个集合的差集(不同的元素)

  

 

  2、sdiffstore destination key1 [key2]  (返回给定所有集合的差集并存储在destination中)

  set1 和 set2  的差集

  

  

  返回set1和set2集合的差集并存储在set3中:

  

 

  3、sinter key1 [key2]  (返回给定所有集合的交集)

  获取两个集合的交集(相同的元素)

  

 

  4、sinterstore destination key1 [key2]  (返回给定所有集合的交集并存储在destination中)

  

 

  5、sunion key1 [key2]  (返回所有给定集合的并集)

  并集的结果:给定的集合里面的元素只能出现一次

  

 

  6、sunionstore destination key1 [key2]  (所有给定集合的并集存储在destination集合中) 

  

 

 

 

 

 

 

 

posted @ 2018-08-29 17:37  何健亮  阅读(331)  评论(0编辑  收藏  举报