| 集合(set)类型也是用来保存多个的字符串元素,但和列表不同的是:它的元素是无序且不可重复的,不能通过索引获取元素.如下图,集合user:1:follows中包含着"his"、"it"、"sports"、"music"四个元素,一个集合最多可以存储(2的32次方-1)个元素. 
 
   
 1) 集合内操作
 (1) 添加元素  sadd key value [value...]  返回结果为添加成功的元素数量.
 
 (2) 删除元素  srem key value [value...]  返回结果为删除成功的元素数量.
 
 (3) 获取元素个数  scard key
 
 (4) 判断元素是否在集合中  sismember key value
 
 (5) 随机从集合中返回指定个数元素  srandmember key [count]  [count]是可选参数,如果不写默认为:1.
 
 (6) 从集合中随机弹出元素  spop key  spop操作可以从集合中随机弹出一个元素.
 
 (7) 获取集合的所有元素  smembers key  获取集合所有元素,且返回结果是无序的.
 
 2) 集合间操作
 (1) 求多个集合的交集  sinter key [key...]
 
 (2) 求多个集合的并集  sunion key [key...]
 
 (3) 求多个集合的差集  sdiff key [key...]
 
 (4) 将交集、并集、差集的结果保存.
 
 sinterstore storeKey key [key...]
 sunionstore storeKey key [key...]
 sdiffstore storeKey key [key...]
 
 集合间的运算在元素比较多的情况下会比较耗时,所以redis提供了上面三个命令(原命令+store)将集合间交集、并集、差集的结果保存到storeKey中,例如将user:1:follows和user:2:follows两个集合之间的交集结果保存到user:1_2:follows中.
 
 
   
 参考资料:https://www.cnblogs.com/pirlo21/p/7120935.html
 
 |