public class RedisHelper.SetOps extends Object
提示: set中的元素,不可以重复。 提示: set是无序的。 提示: redis中String的数据结构可参考resources/data-structure/Set(集合)的数据结构(示例一).png redis中String的数据结构可参考resources/data-structure/Set(集合)的数据结构(示例二).png
| 构造器和说明 |
|---|
SetOps() |
| 限定符和类型 | 方法和说明 |
|---|---|
long |
sAdd(String key,
String... items)
向(key对应的)set中添加items
注: 若key不存在,则会自动创建。
|
Set<String> |
sDifference(String key,
Collection<String> otherKeys)
获取 (key对应的)Set 减去 (otherKeys对应的)Sets 的差集
注: 如果被减数key不存在, 那么结果为空的集合(,而不是null)
注: 如果被减数key存在,但减数key不存在, 那么结果即为(被减数key对应的)Set
提示: 当有多个减数时, 被减数先减去哪一个减数,后减去哪一个减数,是无所谓的,是不影响最终结果的。
|
Set<String> |
sDifference(String key,
String otherKey)
获取 (key对应的)Set 减去 (otherKey对应的)Set 的差集
注: 如果被减数key不存在, 那么结果为空的集合(,而不是null)
注: 如果被减数key存在,但减数key不存在, 那么结果即为(被减数key对应的)Set
|
long |
sDifferenceAndStore(String key,
Collection<String> otherKeys,
String storeKey)
获取 (key对应的)Set 减去 (otherKey对应的)Set 的差集, 并将结果add到storeKey对应的Set中。
|
long |
sDifferenceAndStore(String key,
String otherKey,
String storeKey)
获取 (key对应的)Set 减去 (otherKey对应的)Set 的差集, 并将结果add到storeKey对应的Set中。
|
Set<String> |
sDistinctRandomMembers(String key,
long count)
从key对应的set中随机获取count个项
注: 若count >= set的size, 那么返回的即为这个key对应的set。
|
Set<String> |
sIntersect(String key,
Collection<String> otherKeys)
获取多个(key对应的)Set的交集
注: 若不存在任何交集,那么返回空的集合(, 而不是null)
注: 若>=1个key不存在,那么返回空的集合(, 而不是null)
|
Set<String> |
sIntersect(String key,
String otherKey)
获取两个(key对应的)Set的交集
注: 若不存在任何交集,那么返回空的集合(, 而不是null)
注: 若其中一个key不存在(或两个key都不存在),那么返回空的集合(, 而不是null)
|
long |
sIntersectAndStore(String key,
Collection<String> otherKeys,
String storeKey)
获取多个(key对应的)Set的交集, 并将结果add到storeKey对应的Set中。
|
long |
sIntersectAndStore(String key,
String otherKey,
String storeKey)
获取两个(key对应的)Set的交集, 并将结果add到storeKey对应的Set中。
|
boolean |
sIsMember(String key,
Object item)
判断(key对应的)set中是否含有item
注: 若key不存在,则返回false。
|
Set<String> |
sMembers(String key)
获取key对应的set
注: 若key不存在, 则返回的是空的set(, 而不是null)
|
boolean |
sMove(String sourceKey,
String item,
String destinationKey)
将(sourceKey对应的)sourceSet中的元素item, 移动到(destinationKey对应的)destinationSet中
注: 当sourceKey不存在时, 返回false
注: 当item不存在时, 返回false
注: 若destinationKey不存在, 那么在移动时会自动创建
注: 若已经将(sourceKey对应的)set中的项move出去完了,那么对应的sourceKey会被删除。
|
String |
sPop(String key)
从(key对应的)set中随机移出一个item, 并返回这个item
注: 因为set是无序的,所以移出的这个item,是随机的; 并且,哪怕
是数据一样的set,多次测试移出操作,移除的元素也是随机的。
|
String |
sRandomMember(String key)
从key对应的set中随机获取一项
|
List<String> |
sRandomMembers(String key,
long count)
从key对应的set中获取count次随机项(, set中的同一个项可能被多次获取)
注: count可大于set的size。
|
long |
sRemove(String key,
Object... items)
从(key对应的)set中删除items
注: 若key不存在, 则返回0。
|
org.springframework.data.redis.core.Cursor<String> |
sScan(String key,
org.springframework.data.redis.core.ScanOptions options)
根据options匹配到(key对应的)set中的对应的item, 并返回对应的item集
注: ScanOptions实例的创建方式举例:
1、ScanOptions.NONE
2、ScanOptions.scanOptions().match("n??
|
long |
sSize(String key)
获取(key对应的)set中的元素个数
注: 若key不存在,则返回0
|
Set<String> |
sUnion(String key,
Collection<String> otherKeys)
获取两个(key对应的)Set的并集
注: 并集中的元素也是唯一的,这是Set保证的。
|
Set<String> |
sUnion(String key,
String otherKey)
获取两个(key对应的)Set的并集
注: 并集中的元素也是唯一的,这是Set保证的。
|
long |
sUnionAndStore(String key,
Collection<String> otherKeys,
String storeKey)
获取两个(key对应的)Set的并集, 并将结果add到storeKey对应的Set中。
|
long |
sUnionAndStore(String key,
String otherKey,
String storeKey)
获取两个(key对应的)Set的并集, 并将结果add到storeKey对应的Set中。
|
public long sAdd(String key, String... items)
注: 若key不存在,则会自动创建。 注: set中的元素会去重。
key - 定位set的keyitems - 要向(key对应的)set中添加的itemspublic long sRemove(String key, Object... items)
注: 若key不存在, 则返回0。 注: 若已经将(key对应的)set中的项删除完了,那么对应的key也会被删除。
key - 定位set的keyitems - 要移除的itemspublic String sPop(String key)
注: 因为set是无序的,所以移出的这个item,是随机的; 并且,哪怕 是数据一样的set,多次测试移出操作,移除的元素也是随机的。
注: 若已经将(key对应的)set中的项pop完了,那么对应的key会被删除。
key - 定位set的keypublic boolean sMove(String sourceKey, String item, String destinationKey)
注: 当sourceKey不存在时, 返回false 注: 当item不存在时, 返回false 注: 若destinationKey不存在, 那么在移动时会自动创建 注: 若已经将(sourceKey对应的)set中的项move出去完了,那么对应的sourceKey会被删除。
sourceKey - 定位sourceSet的keyitem - 要移动的项目destinationKey - 定位destinationSet的keypublic long sSize(String key)
注: 若key不存在,则返回0
key - 定位set的keypublic boolean sIsMember(String key, Object item)
注: 若key不存在,则返回false。
key - 定位set的keyitem - 被查找的项public Set<String> sIntersect(String key, String otherKey)
注: 若不存在任何交集,那么返回空的集合(, 而不是null) 注: 若其中一个key不存在(或两个key都不存在),那么返回空的集合(, 而不是null)
key - 定位其中一个set的键otherKey - 定位其中另一个set的键public Set<String> sIntersect(String key, Collection<String> otherKeys)
注: 若不存在任何交集,那么返回空的集合(, 而不是null) 注: 若>=1个key不存在,那么返回空的集合(, 而不是null)
key - 定位其中一个set的键otherKeys - 定位其它set的键集public long sIntersectAndStore(String key, String otherKey, String storeKey)
case1: 交集不为空, storeKey不存在, 则 会创建对应的storeKey,并将交集添加到(storeKey对应的)set中 case2: 交集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将交集添加到(storeKey对应的)set中 case3: 交集为空, 则不进行下面的操作, 直接返回0
注: 求交集的部分,详见sIntersect(String, String)
key - 定位其中一个set的键otherKey - 定位其中另一个set的键storeKey - 定位(要把交集添加到哪个)set的keypublic long sIntersectAndStore(String key, Collection<String> otherKeys, String storeKey)
case1: 交集不为空, storeKey不存在, 则 会创建对应的storeKey,并将交集添加到(storeKey对应的)set中 case2: 交集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将交集添加到(storeKey对应的)set中 case3: 交集为空, 则不进行下面的操作, 直接返回0
注: 求交集的部分,详见sIntersect(String, Collection)
public Set<String> sUnion(String key, String otherKey)
注: 并集中的元素也是唯一的,这是Set保证的。
key - 定位其中一个set的键otherKey - 定位其中另一个set的键public Set<String> sUnion(String key, Collection<String> otherKeys)
注: 并集中的元素也是唯一的,这是Set保证的。
key - 定位其中一个set的键otherKeys - 定位其它set的键集public long sUnionAndStore(String key, String otherKey, String storeKey)
case1: 并集不为空, storeKey不存在, 则 会创建对应的storeKey,并将并集添加到(storeKey对应的)set中 case2: 并集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将并集添加到(storeKey对应的)set中 case3: 并集为空, 则不进行下面的操作, 直接返回0
注: 求并集的部分,详见sUnion(String, String)
key - 定位其中一个set的键otherKey - 定位其中另一个set的键storeKey - 定位(要把并集添加到哪个)set的keypublic long sUnionAndStore(String key, Collection<String> otherKeys, String storeKey)
case1: 并集不为空, storeKey不存在, 则 会创建对应的storeKey,并将并集添加到(storeKey对应的)set中 case2: 并集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将并集添加到(storeKey对应的)set中 case3: 并集为空, 则不进行下面的操作, 直接返回0
注: 求并集的部分,详见sUnion(String, Collection)
key - 定位其中一个set的键otherKeys - 定位其它set的键集storeKey - 定位(要把并集添加到哪个)set的keypublic Set<String> sDifference(String key, String otherKey)
注: 如果被减数key不存在, 那么结果为空的集合(,而不是null) 注: 如果被减数key存在,但减数key不存在, 那么结果即为(被减数key对应的)Set
key - 定位"被减数set"的键otherKey - 定位"减数set"的键public Set<String> sDifference(String key, Collection<String> otherKeys)
注: 如果被减数key不存在, 那么结果为空的集合(,而不是null) 注: 如果被减数key存在,但减数key不存在, 那么结果即为(被减数key对应的)Set
提示: 当有多个减数时, 被减数先减去哪一个减数,后减去哪一个减数,是无所谓的,是不影响最终结果的。
key - 定位"被减数set"的键otherKeys - 定位"减数集sets"的键集public long sDifferenceAndStore(String key, String otherKey, String storeKey)
case1: 差集不为空, storeKey不存在, 则 会创建对应的storeKey,并将差集添加到(storeKey对应的)set中 case2: 差集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将差集添加到(storeKey对应的)set中 case3: 差集为空, 则不进行下面的操作, 直接返回0
注: 求并集的部分,详见sDifference(String, String)
key - 定位"被减数set"的键otherKey - 定位"减数set"的键storeKey - 定位(要把差集添加到哪个)set的keypublic long sDifferenceAndStore(String key, Collection<String> otherKeys, String storeKey)
case1: 差集不为空, storeKey不存在, 则 会创建对应的storeKey,并将差集添加到(storeKey对应的)set中 case2: 差集不为空, storeKey已存在, 则 会清除原(storeKey对应的)set中所有的项,然后将差集添加到(storeKey对应的)set中 case3: 差集为空, 则不进行下面的操作, 直接返回0
注: 求并集的部分,详见sDifference(String, String)
key - 定位"被减数set"的键otherKeys - 定位"减数集sets"的键集storeKey - 定位(要把差集添加到哪个)set的keypublic Set<String> sMembers(String key)
注: 若key不存在, 则返回的是空的set(, 而不是null)
key - 定位set的keypublic String sRandomMember(String key)
key - 定位set的keypublic List<String> sRandomMembers(String key, long count)
注: count可大于set的size。 注: 取出来的结果里可能存在相同的值。
key - 定位set的keycount - 要取多少项public Set<String> sDistinctRandomMembers(String key, long count)
注: 若count >= set的size, 那么返回的即为这个key对应的set。 注: 取出来的结果里没有重复的项。
key - 定位set的keycount - 要取多少项public org.springframework.data.redis.core.Cursor<String> sScan(String key, org.springframework.data.redis.core.ScanOptions options)
注: ScanOptions实例的创建方式举例: 1、ScanOptions.NONE 2、ScanOptions.scanOptions().match("n??e").build()
key - 定位set的keyoptions - 匹配set中的item的条件
注: ScanOptions.NONE表示全部匹配。
注: ScanOptions.scanOptions().match(pattern).build()表示按照pattern匹配,
其中pattern中可以使用通配符 * ? 等,
* 表示>=0个字符
? 表示有且只有一个字符
此处的匹配规则与RedisHelper.KeyOps.keys(String)处的一样。Copyright © 2023 Irvingsoft. All rights reserved.