个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~
④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