RedisTemplate之opsForSet()

SetOperations中的方法

使用SetOperations可以进行Redis的set集合操作。

方法返回值描述
1. add(K key, V… values) Long 向变量中批量添加值。
2.members(K key) Set<V> 获取变量中的值。
3.size(K key) Long 获取变量中值的长度。
4.randomMember(K key) V 随机获取变量中的元素。
5.randomMembers(K key, long count) Set<V> 随机获取变量中指定个数的元素。
6.isMember(K key, Object o) Boolean 检查给定的元素是否在变量中。
7.move(K key, V value, K destKey) Boolean 转移变量的元素值到目的变量。
8.pop(K key) V 随机弹出一个元素。
9.pop(K key, long count) List<V> 随机弹出多个元素
10.remove(K key, Object… values) Long 批量移除变量中的元素。
11.scan(K key, ScanOptions options) Cursor<V> 匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match(“c”).build()匹配获取“c"键位的键值对,不能模糊匹配。
12.difference(K key, K otherKey) Set<V> 求2个key集合的差集
13.difference(K key, Collection otherKeys) Set<V> key集合的元素,与集合otherKeys里每个key的元素求差集
14.differenceAndStore(K key, K otherKey, K destKey) Long 保存key与otherKey的差集到destKey。
15.differenceAndStore(K key, Collection otherKeys, K destKey) Long 保存key与集合otherKeys里每个key的所有元素的差集到destKey。
16.distinctRandomMembers(K key, long count) Set<V> 获取多个去重的随机元素。
17.intersect(K key, K otherKey) Set<V> 获取2个set变量中的交集。
18.intersect(K key, Collection otherKeys) Set<V> 获取多个变量之间的交集。
19.intersectAndStore(K key, K otherKey, K destKey) Long 保存key与otherKey集合变量的交集到destKey。
20.intersectAndStore(K key, Collection otherKeys, K destKey) Long 保存key与集合otherKeys里所有key的元素的交集到destKey。
21.union(K key, K otherKey) Set<V> 获取2个变量的合集。
22.union(K key, Collection otherKeys) Set<V> 获取多个变量的合集。
23.unionAndStore(K key, K otherKey, K destKey) Long 获取2个变量合集后保存到最后一个参数上。
24.unionAndStore(K key, Collection otherKeys, K destKey) Long 获取多个变量的合集并保存到最后一个参数上。

1. add(K key, V… values)

向变量中批量添加值。

setVo.add("key","a","b","c");
  • 1

2.members(K key)

获取变量中的值。

log.debug(Arrays.toString(setVo.members("key").toArray()));
  • 1

3.size(K key)

获取变量中值的长度。

log.debug(String.valueOf(setVo.size("key")));
  • 1

4.randomMember(K key)

随机获取变量中的元素。

log.debug(setVo.randomMember("key"));
  • 1

5.randomMembers(K key, long count)

随机获取变量中指定个数的元素。

log.debug(String.valueOf(setVo.randomMembers("key",2)));
  • 1

6.isMember(K key, Object o)

检查给定的元素是否在变量中。

log.debug("是否存在元素f:{}", setVo.isMember("key", "f"));
  • 1

7.move(K key, V value, K destKey)

转移变量的元素值到目的变量。

setVo.move("key","c","key1");
  • 1

8.pop(K key)

随机弹出一个元素。

log.debug("随机弹出的元素:{}", setVo.pop("key"));
  • 1

9.pop(K key, long count)

随机弹出多个元素

log.debug("随机弹出2个元素:{}", setVo.pop("key",2));
  • 1

10.remove(K key, Object… values)

批量移除变量中的元素。

setVo.remove("key","mongodb","mike");
  • 1

11.scan(K key, ScanOptions options)

匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match(“c”).build()匹配获取“c"键位的键值对,不能模糊匹配。

//Cursor<String> cursor = setVo.scan("key", ScanOptions.NONE);
Cursor<String> cursor = setVo.scan("key", ScanOptions.scanOptions().match("c").match("z").count(1).build());
while (cursor.hasNext()){
    log.debug("全部元素:{}",cursor.next());
}
  • 1
  • 2
  • 3
  • 4
  • 5

12.difference(K key, K otherKey)

求2个key集合的差集

log.debug("key与key1的差集:{}",setVo.difference("key","key1"));
  • 1

13.difference(K key, Collection otherKeys)

key集合的元素,与集合otherKeys里每个key的元素求差集

setVo.add("key1","a","b");
setVo.add("key2","c","d");
List list = Arrays.asList("key1","key2");
log.debug("key与list[key1,key2]的差集:{}",setVo.difference("key",list));
  • 1
  • 2
  • 3
  • 4

14.differenceAndStore(K key, K otherKey, K destKey)

保存key与otherKey的差集到destKey。

log.debug("key与key2差集元素数量为:{}",setVo.differenceAndStore("key","key2","key3"));
  • 1

15.differenceAndStore(K key, Collection otherKeys, K destKey)

保存key与集合otherKeys里每个key的所有元素的差集到destKey。

List list = Arrays.asList("key1", "key2");
log.debug("key与list集合里所有key的元素的差集元素数量为:{}", setVo.differenceAndStore("key", list, "key4"));
  • 1
  • 2

16.distinctRandomMembers(K key, long count)

获取多个去重的随机元素。

log.debug("获取3个去重的随机元素key:{}",setVo.distinctRandomMembers("key",3));
  • 1

17.intersect(K key, K otherKey)

获取2个set变量中的交集。

log.debug("获取key与key4集合变量的交集:{}",setVo.intersect("key","key4"));
  • 1

18.intersect(K key, Collection otherKeys)

获取多个变量之间的交集。

log.debug("获得多个key变量的交集:{}",setVo.intersect("key",Arrays.asList("key1", "key2")));
  • 1

19.intersectAndStore(K key, K otherKey, K destKey)

保存key与otherKey集合变量的交集到destKey。

log.debug("key与key4集合变量的交集元素数量为:{}",setVo.intersectAndStore("key","key4","key5"));
  • 1

20.intersectAndStore(K key, Collection otherKeys, K destKey)

保存key与集合otherKeys里所有key的元素的交集到destKey。

log.debug("key与多个key集合的交集元素数量为:{}",setVo.intersectAndStore("key", Arrays.asList("key1","key2"),"key6"));
  • 1

21.union(K key, K otherKey)

获取2个变量的合集。

setVo.add("key7","j","k","l");
log.debug("2个key的合集:{}",setVo.union("key","key7"));
  • 1
  • 2

22.union(K key, Collection otherKeys)

获取多个变量的合集。

setVo.add("key8", "o", "p", "s");
log.debug("多个key的合集:{}", setVo.union("key", Arrays.asList("key7", "key8")));
  • 1
  • 2

23.unionAndStore(K key, K otherKey, K destKey)

获取2个变量合集后保存到最后一个参数上。

log.debug("2个key的合集的元素数量为:{}",setVo.unionAndStore("key", "key8","key10"));

  • 1
  • 2

24.unionAndStore(K key, Collection otherKeys, K destKey)

获取多个变量的合集并保存到最后一个参数上。

log.debug("多key的合集的元素数量为:{}",setVo.unionAndStore("key", Arrays.asList("key7","key8"),"key9"));
原文地址:https://www.cnblogs.com/vindycxy/p/13896274.html