④Redis Set 操作命令汇总
- Redis的Set是String类型的无序不可重复集合,集合对象的编码可以是intset或者hashtable
- Redis中Set集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
- 集合中最多存放2^32-1个元素
1. sadd 向集合添加一个或多个成员
sadd key member [member ...]
# 向集合添加单个成员 sadd set1 m1 # 向集合添加多个成员 sadd set1 m2 m3 # 返回值是操作成功的个数
2. smembers 遍历集合中所有成员
smembers key
# 遍历set1中的所有元素 smembers set1
3. sismember 判断集合中是否存在指定的成员
sismember key member
# 判断指定成员是否存在于集合set1 # 1:yes # 0:no sismember set1 m1 sismember set1 m
4. srem 删除集合中一个或多的成员
srem key member [member ...]
# 删除指定的成员 srem set1 m1 m2 m3
5. scard 获取集合的成员数量
scard key
# 获取set1中的成员数量 scard set1
6. srandmember 返回一个或多个集合中的随机成员
srandmember key [count]
# 不指定数量,默认返回一个随机成员 srandmember set1 srandmember set1 2
7. spop 移除并返回集合中的随机成员(可指定数量)
spop key [count]
# 移除并返回随机成员,不指定数量默认移除一个 spop set1 spop set1 2
8. smove 将指定成员从source移动到destination
smove source destination member
# 将成员888从set1移动到set2 smove set1 set2 888
9. sdiff 集合成员的差集运算
sdiff key [key ...]
# 返回 属于集合s1 但不属于集合s2的成员 sdiff s1 s2
10. sunion集合成员的并集运算
sunion key [key ...]
# 返回 属于集合s1或属于集合s2的成员合并后的结果 sunion s1 s2
11. sinter 集合成员的交集运算
sinter key [key ...]
# 返回 集合s1与集合s2成员的交集运算 sinter s1 s2
12. sintercard 集合成员的交集运算结果的个数(可限制最大值)
sintercard numkeys key [key ...] [LIMIT limit]
# sintercard 运算集合数 集合1 集合2...集合n limit 最大值 sintercard 2 s1 s2 sintercard 2 s1 s2 limit 1