Redis set(集合)相关命令
redis 的 set 是 string 类型的无序集合,元素不允许重复。
redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 o(1)。
集合中最大的元素数为 232 - 1 (40多亿)。
1、sadd key value1 value2 ...... //向集合中添加一个或多个元素。sadd即set add,key是集合的名称。返回此次添加的元素个数。
2、scard key //返回集合的元素个数
3、smembers key //返回集合中所有的元素
4、sismember key elementvalue //判断该集合中是否有elementvalue这个元素。有返回1,没有或者key不存在则返回0.
5、spop key //随机移除并返回集合中的一个元素
6、srandmember key //随机返回集合中的一个元素,并不移除该元素。srandmember即set random member.
可带一个可选参数:srandmember key count //count是一个整数,指定返回的元素个数。
count>0:随机返回count个元素,这些元素互不相同。随机确定一个返回的元素后,再从剩余的元素中随机。
count<0:随机返回count的绝对值个元素,这些元素可能相同。每次都是从整个集合中随机一个。
count的绝对值大于等于集合的元素个数时,返回集合中所有的元素。
7、srem key value1 value2 .... //移除集合中的一个或多个元素,若集合中没有该元素,会忽略该元素。
8、smove sourcekey destkey elementvalue //将元素从一个集合移动到另一个集合。(剪切)
9、sscan key cursor match pattern count num //迭代集合中的元素。cursor指定对每元素的操作。
2个可选参数:
- match pattern 指定配置模式,只迭代符合pattern的元素
- count num 指定要迭代的元素个数
10、sinter key1 key2 .... //返回这些集合的交集
11、sinterstore destkey key1 key2 ..... //多了store,求key1、key2.....这些集合的交集,并将交集中的元素存储在destkey集合中,返回交集中的元素个数
相同用法的还有:
- sunion 并集
- sdiff 差集