• 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"));
  • 相关阅读:
    [设计模式]<<设计模式之禅>>关于迪米特法则
    [设计模式]<<设计模式之禅>>关于接口隔离原则
    [设计模式]<<设计模式之禅>>关于依赖倒置原则
    /proc/meminfo分析(一)
    Dynamic DMA mapping Guide
    Linux时钟
    Linux系统休眠和设备中断处理
    Linux调度器
    Linux调度器
    Linux标识进程
  • 原文地址:https://www.cnblogs.com/vindycxy/p/13896274.html
Copyright © 2020-2023  润新知