引言
set类型是的元素是不重复的
本文主要介绍redis的set类型的命令。主要包括以下几个
- sadd key value [value …]
- scard key
- smembers key
- sismember key value
- spop key
- srandmember key count
- sdiff key [key …]
- sdiffstore destination key [key…]
- sinter key [key …]
- sinterstore destination key [key …]
- sunion key [key …]
- sunionstroe destination key [key …]
- smove source destination member
- srem key member [member]
- sscan key cursor [match pattern] [count count]
挨个介绍
添加一个或多个元素
sadd key value [value]
获取set元素的个数
scard key
获取set的全部元素
smembers key
判断一个值是否在set集合中存在
sismember key member
随机从集合中删除并返回count个元素, 默认是1
spop key [count]
随机从集合中返回count个元素,默认是1. 不会删除集合中的元素
srandmember key [count]
从集合中删除指定值的元素
srem key member [member]
把指定值从source中删除 添加到destination中
smove source destination member
集合求并集、差集、交集
sunion、sdiff、sinter是分别求并集、差集、交集
sunionstroe、sdiffstore、sinterstore是把求得的结果存在目标key集合中
sdiff key [key …]
sdiffstore destination key[key …]
sscan
增量式的迭代集合的元素
用来弥补smembers 一下子返回全部元素。sscan每次只返回少量的元素。并返回下一次迭代开始的游标。
scan命令java中提供了迭代器的实现,api调用很方便
public Set iterator(String key) {
Set result = new HashSet();
Cursor<String> scan = redisTemplate.opsForSet()
.scan(key, ScanOptions.scanOptions().build());
while (scan.hasNext()) {
String next = scan.next();
result.add(next);
}
return result;
}
sscan key cursor [match pattern] [count count]