【Redis】集合类型Set 常用命令详解
1. sadd - 添加
语法:sadd key value
> sadd testset A
1
> sadd testset B
1
> sadd testset C
1
> sadd testset C # set的值不能重复
0
> smembers set1 # 查询指定set的所有值,乱序
1) "B"
2) "A"
3) "C"
2. 获取
2.1 smembers - 获取set集合中的所有元素
语法:smembers key
> smembers testset # 查询指定set的所有值,乱序
1) "B"
2) "A"
3) "C"
2.2 scard - 获取元素的个数
语法:scard set
> scard set1
3
2.3 srandmember - 随机获取元素
语法:srandmember set [num]
- 默认获取一个随机元素,后跟数字,代表随机获取几个元素
> smembers testset
1) "D"
2) "B"
3) "A"
4) "C"> srandmember testset # 获取一个随机元素
"D"> srandmember testset # 获取一个随机元素
"A"> srandmember testset 2 # 获取两个随机元素
1) "B"
2) "D"
3. 删除
3.1 srem - 删除set集合中某元素
语法: srem key value
> smembers testset
1) "B"
2) "A"
3) "C"> srem testset C
1> smembers testset
1) "B"
2) "A"
3.2 spop - 随机删除一个元素
语法:spop set
> smembers testset
1) "D"
2) "B"
3) "A"
4) "C"> spop testset # 随机删除一个元素
"A"> spop testset # 随机删除一个元素
"B"> smembers testset
1) "D"
2) "C"
4. smove - 移动指定值到另一个set
语法:smove set1 set2 value
> smembers testset
1) "D"
2) "C"> smove testset testset1 D # 从 testset 移动 D 到 testset1
1> smembers testset
1) "C"> smembers testset1
1) "D"
5. sinter - 交集 sunion - 并集 sdiff - 差集
sinter set1 set2:交集
sunion set1 set2:并集
sdiff set1 set2:差集
> sadd testset A
1
> sadd testset B
1
> sadd testset C
1> sadd testset1 B
1
> sadd testset1 C
1
> sadd testset1 D
1
> sadd testset1 E
1> sinter testset testset1 # 交集
1) "B"
2) "C"> sunion testset testset1 # 并集
1) "D"
2) "E"
3) "C"
4) "B"
5) "A"> sdiff testset testset1 # 差集
1) "A"