六、redis之set
Redis集合是成员的无序集合。可以用来保存唯一的成员。
注意:对于以下的命令,涉及删除成员的,如果集合中的所有元素都被移除,则集合会被删除。如果集合原先不存在,被当作空集合。
SADD
SADD key member [member ...]
sadd命令将一系列成员添加到set中。
SMEMBERS
SMEMBERS key
smembers列出set中的所有成员。如果set成员很多,会阻塞redis服务,所以在生产环境慎用。
SISMEMBER
SISMEMBER key member
sismember判断成员是否属于set集合。
SMISMEMBER
SMISMEMBER key member [member ...]
smismember判断多个成员是否属于set集合。
SCARD
SCARD key
scard返回集合中的成员数量。
SMOVE
SMOVE source destination member
SMOVE将成员从slource集合移除,并添加到destination集合。
SPOP
SPOP key [count]
spop随机从set中移除并返回count个成员。
SRANDMEMBER
SRANDMEMBER key [count]
srandmember从set中随机返回count个成员。
SREM
SREM key member [member ...]
srem从set中移除指定的多个成员。
SSCAN
SSCAN key cursor [MATCH pattern] [COUNT count]
SSCAN和hscan的用法类似,区别的是返回的数据类型不同。
在高中时,数学的第一章就是集合。那么redis中的集合有没有数学中的集合涉及的运算呢?有的。最后看下集合的运算。
交集
数学中的交集就是两个集合共同的成员组成的集合。
SINTER key [key ...]
sinter返回多个集合的交集。
SINTERSTORE destination key [key ...]
SINTERSTORE将多个集合的交集保存到destination集合中。
SINTERCARD numkeys key [key ...] [LIMIT limit]
SINTERCARD返回多个交集中成员数量。limit限制交集的成员数,对于大集合可以快速返回。
差集
数学中的差集就是一个集合移除另一集合中的成员后剩余的成员组成的新集合。
SDIFF key [key ...]
SDIFFSTORE destination key [key ...]
SDIFF set1 set2的结果是set1中的成员移除set2中的所有成员后剩余的成员组成的新集合。SDIFFSTORE将差集的结果保存到destination集合中。
并集
并集就是将多个集合的所有成员组成新的集合。
SUNION key [key ...]
SUNIONSTORE destination key [key ...]
SUNION会将集合的结果返回,SUNIONSTORE会将集合的结果保存到destination集合。
可以看到如果destination集合原先存在数据,SUNIONSTORE会覆盖原先的数据。SDIFFSTORE,SINTERSTORE命令也一样
。