Redis常用api大全(下)

4 篇文章 0 订阅

接上文.....

5、Set类型常用api

  • Long add(K var1, V... var2):向变量中批量添加值
    @Override
    public void run(String... args) throws Exception {
        Long add = redisTemplate.opsForSet().add("set_test""A""B""C");
        log.info("添加数量:{}", add);
        log.info("success");
    }
  • Set<V> members(K var1):获取变量中的所有值
    @Override
    public void run(String... args) throws Exception {
        Set<String> difference = redisTemplate.opsForSet().members("set_test");
        difference.forEach(s -> {
            log.info("值:{}", s);
        });
        log.info("success");
    }
  • Long size(K var1):查看set集合大小
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForSet().size("set_test");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Long remove(K var1, Object... var2):移除set集合中的数据(可传多个值)
    @Override
    public void run(String... args) throws Exception {
        Long remove = redisTemplate.opsForSet().remove("set_test""A""B");
        log.info("移除数量:{}", remove);
        log.info("success");
    }
  • Set<V> difference(K var1, K var2):取两个集合中的差值(注意,参数都是set缓存的key,而不是自己定义一个字符串进去!该方法是求第一个参数的差值,举个例子:var1在缓存中对应的值为{1,2,3},var2在缓存中对应的值为{2,3},那么经过difference方法,返回的就是1,如果var1在缓存中对应的值为{2,3},var2在缓存中对应的值为{1,2,3},那么经过difference方法就什么都不会返回!)
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForSet().add("set_test1""C""D");
        Set<String> difference = redisTemplate.opsForSet().difference("set_test1""set_test");
        difference.forEach(s -> {
            log.info("差值:{}", s);
        });
        log.info("success");
    }
  • Set<V> difference(K var1, Collection<K> var2):与上个api不同的是,传进去的值是个集合,然后和原有的集合比较,返回差值
    @Override
    public void run(String... args) throws Exception {
        List<String> stringList = new ArrayList<>();
        stringList.add("set_test");
        Set<String> difference = redisTemplate.opsForSet().difference("set_test1", stringList);
        difference.forEach(s -> {
            log.info("差值:{}", s);
        });
        log.info("success");
    }
  • Long differenceAndStore(K var1, K var2, K var3):将第一个集合与第二个集合的差集保存在第三个集合中
    @Override
    public void run(String... args) throws Exception {
        Long differenceAndStore = redisTemplate.opsForSet().differenceAndStore("set_test1""set_test""set_test3");
        log.info("差集数量:{}", differenceAndStore);
        Set<String> setTest3 = redisTemplate.opsForSet().members("set_test3");
        setTest3.forEach(s -> {
            log.info("setTest3集合中的值:{}", s);
        });
        log.info("success");
    }
  • Long differenceAndStore(K var1, Collection<K> var2, K var3):将第一个集合与第二个参数列表集合的差集保存在第三个集合中
    @Override
    public void run(String... args) throws Exception {
        List<String> list = new ArrayList<>();
        list.add("set_test");
        Long differenceAndStore = redisTemplate.opsForSet().differenceAndStore("set_test1", list, "set_test4");
        log.info("差集数量:{}", differenceAndStore);
        Set<String> setTest4 = redisTemplate.opsForSet().members("set_test4");
        setTest4.forEach(s -> {
            log.info("setTest4集合中的值:{}", s);
        });
        log.info("success");
    }
  • Set<V> intersect(K var1, K var2):获取第一个参数集合与第二个参数集合的交集
    @Override
    public void run(String... args) throws Exception {
        Set<String> intersect = redisTemplate.opsForSet().intersect("set_test""set_test1");
        intersect.forEach(s -> {
            log.info("交集值:{}", s);
        });
        log.info("success");
    }
  • Set<V> intersect(K var1, Collection<K> var2):获取第一个参数集合中与其他多个集合的交集
    @Override
    public void run(String... args) throws Exception {
        List<String> list = new ArrayList<>();
        list.add("set_test1");
        Set<String> intersect = redisTemplate.opsForSet().intersect("set_test", list);
        intersect.forEach(s -> {
            log.info("交集值:{}", s);
        });
        log.info("success");
    }
  • Long intersectAndStore(K var1, K var2, K var3):获取第一个集合与第二个集合的交集内容保存到第三个集合
    @Override
    public void run(String... args) throws Exception {
        Long intersectAndStore = redisTemplate.opsForSet().intersectAndStore("set_test""set_test1""set_inter_1");
        log.info("交集数量:{}", intersectAndStore);
        Set<String> setInter = redisTemplate.opsForSet().members("set_inter_1");
        setInter.forEach(s -> {
            log.info("setInter集合中的值:{}", s);
        });
        log.info("success");
    }
  • Long intersectAndStore(K var1, Collection<K> var2, K var3):获取第一个集合与第二个list集合的交集内容保存到第三个集合中
    @Override
    public void run(String... args) throws Exception {
        List<String> list = new ArrayList<>();
        list.add("set_test1");
        Long intersectAndStore = redisTemplate.opsForSet().intersectAndStore("set_test", list, "set_inter_2");
        log.info("交集数量:{}", intersectAndStore);
        Set<String> setInter = redisTemplate.opsForSet().members("set_inter_2");
        setInter.forEach(s -> {
            log.info("setInter集合中的值:{}", s);
        });
        log.info("success");
    }
  • Set<V> union(K var1, K var2):获取两个集合的并集然后去重返回
    @Override
    public void run(String... args) throws Exception {
        Set<String> union = redisTemplate.opsForSet().union("set_test3""set_test4");
        union.forEach(s -> {
            log.info("并集值:{}", s);
        });
        log.info("success");
    }
  • Set<V> union(K var1, Collection<K> var2):获取多个集合的并集然后去重返回
    @Override
    public void run(String... args) throws Exception {
        List<String> list = new ArrayList<>();
        list.add("set_test4");
        Set<String> union = redisTemplate.opsForSet().union("set_test3", list);
        union.forEach(s -> {
            log.info("并集值:{}", s);
        });
        log.info("success");
    }
  • Long unionAndStore(K var1, K var2, K var3):获取两个集合的并集然后去重保存在第三个集合,返回保存的集合大小
    @Override
    public void run(String... args) throws Exception {
        Long aLong = redisTemplate.opsForSet().unionAndStore("set_test3""set_test4""set_test5");
        log.info("并集数量:{}", aLong);
        Set<String> setTest5 = redisTemplate.opsForSet().members("set_test5");
        setTest5.forEach(s -> {
            log.info("setTest5中的值:{}", s);
        });
        log.info("success");
    }
  • Long unionAndStore(K var1, Collection<K> var2, K var3):获取多个集合的并集然后去重保存在第三个集合中
    @Override
    public void run(String... args) throws Exception {
        List<String> list = new ArrayList<>();
        list.add("set_test4");
        Long aLong = redisTemplate.opsForSet().unionAndStore("set_test3", list, "set_test6");
        log.info("并集数量:{}", aLong);
        Set<String> setTest6 = redisTemplate.opsForSet().members("set_test6");
        setTest6.forEach(s -> {
            log.info("setTest6中的值:{}", s);
        });
        log.info("success");
    }
  • Boolean isMember(K var1, Object var2):第一个参数是集合key,第二个参数是要判断的值,该方法作用是判断传进去的值是否存在于这个集合中
    @Override
    public void run(String... args) throws Exception {
        Boolean member = redisTemplate.opsForSet().isMember("set_test""C");
        log.info("是否存在:{}", member);
        log.info("success");
    }
  • Boolean move(K var1, V var2, K var3):将集合中的值移动到第三个集合(原集合减这个值,新集合加这个值)
    @Override
    public void run(String... args) throws Exception {
        Boolean move = redisTemplate.opsForSet().move("set_test""C""move_test");
        log.info("是否转移:{}", move);
        Set<String> setTest = redisTemplate.opsForSet().members("set_test");
        if (setTest.size() == 0){
            log.info("set_test参数转移之后内容为null");
        }
        Set<String> moveTest = redisTemplate.opsForSet().members("move_test");
        moveTest.forEach(s -> {
            log.info("move_test转移之后的值:{}", s);
        });
        log.info("success");
    }
  • V pop(K var1):弹出一个值(就是获取并删除集合中的一个值)
    @Override
    public void run(String... args) throws Exception {
        String test = (String) redisTemplate.opsForSet().pop("move_test");
        log.info("弹出的值:{}", test);
        Set<String> moveTest = redisTemplate.opsForSet().members("move_test");
        if (moveTest.size() == 0){
            log.info("弹出值之后原集合内容为空");
        }
        log.info("success");
    }
  • List<V> pop(K var1, long var2):弹出多个值
    @Override
    public void run(String... args) throws Exception {
        List<String> test = redisTemplate.opsForSet().pop("set_test1"2);
        test.forEach(s -> {
            log.info("弹出的值:{}", s);
        });
        Set<String> setTest1 = redisTemplate.opsForSet().members("set_test1");
        if (setTest1.size() == 0){
            log.info("弹出值之后原集合内容为空");
        }
        log.info("success");
    }
  • V randomMember(K var1):随机获取集合中的一个值,注意,这里获取到是不会删除原集合数据的
    @Override
    public void run(String... args) throws Exception {
        String setTest4 = (String) redisTemplate.opsForSet().randomMember("set_test4");
        log.info("随机获取的值:{}", setTest4);
        log.info("success");
    }
  • List<V> randomMembers(K var1, long var2):随机获取集合中多个值,不会删除原集合数据
    @Override
    public void run(String... args) throws Exception {
        List<String> setTest4 = redisTemplate.opsForSet().randomMembers("set_test4"2);
        setTest4.forEach(s -> {
            log.info("随机获取的值:{}", s);
        });
        log.info("success");
    }
  • Set<V> distinctRandomMembers(K var1, long var2):去重随机获取多个值,不会删除原集合数据
    @Override
    public void run(String... args) throws Exception {
        Set<String> setTest4 = redisTemplate.opsForSet().distinctRandomMembers("set_test4"2);
        setTest4.forEach(s -> {
            log.info("随机获取的值:{}", s);
        });
        log.info("success");
    }
  • Long size(K var1):获取集合大小
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForSet().size("set_test4");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Boolean delete(K key):删除整个集合,想删除其中一个值的话请用remove方法
    @Override
    public void run(String... args) throws Exception {
        Boolean delete = redisTemplate.delete("set_test4");
        log.info("是否删除:{}", delete);
        log.info("success");
    }

6、List类型常用api

  • Long leftPush(K var1, V var2):从列表左边插入一条数据,返回集合大小
    @Override
    public void run(String... args) throws Exception {
        Long leftPush = redisTemplate.opsForList().leftPush("list_test""A");
        log.info("集合大小:{}", leftPush);
        log.info("success");
    }
  • Long leftPush(K var1, V var2, V var3):第一个参数是key,将第三个参数值放在第二个参数值左边,如果第二个参数值存在的话
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForList().leftPush("list_test""A""A-");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Long leftPushAll(K var1, V... var2)与Long leftPushAll(K var1, Collection<V> var2):都是批量往列表中插入数据,从左边插入
    @Override
    public void run(String... args) throws Exception {
        // 添加三个元素进去
        List<String> stringList = new ArrayList<>();
        stringList.add("A");
        stringList.add("A");
        stringList.add("A");
        redisTemplate.opsForList().leftPushAll("list_test", stringList);
        redisTemplate.opsForList().leftPushAll("list_test""B""C""D");
        log.info("success");
    }
  • V leftPop(K var1):从左边弹出一个值并在原集合中删除
    @Override
    public void run(String... args) throws Exception {
        String leftPop = (String) redisTemplate.opsForList().leftPop("list_test");
        log.info("左边弹出的值为:{}", leftPop);
        log.info("success");
    }
  • V leftPop(K var1, long var2, TimeUnit var4):从左边弹出数据,如果列表是空的,等待var2时间,超过这个时间,不管有没有值都会返回
    @Override
    public void run(String... args) throws Exception {
        String leftPop = (String) redisTemplate.opsForList().leftPop("list_test"5L, TimeUnit.SECONDS);
        log.info("左边弹出的值为:{}", leftPop);
        log.info("success");
    }
  • Long leftPushIfPresent(K var1, V var2):如果K这个集合存在,则从左边添加value,不存在则不添加
    @Override
    public void run(String... args) throws Exception {
        Long aLong = redisTemplate.opsForList().leftPushIfPresent("list_test1""B");
        log.info("添加数量:{}", aLong);
        log.info("success");
    }
  • Long rightPush(K var1, V var2):从列表右边插入一条数据,返回集合大小
    @Override
    public void run(String... args) throws Exception {
        Long rightPush = redisTemplate.opsForList().rightPush("list_test""B");
        log.info("集合大小:{}", rightPush);
        log.info("success");
    }
  • Long rightPush(K var1, V var2, V var3):第一个参数是key,将第三个参数值放在第二个参数值右边,如果第二个参数值存在的话
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForList().rightPush("list_test""B""B-");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Long rightPushAll(K var1, V... var2)与Long rightPushAll(K var1, Collection<V> var2):都是批量往列表中插入数据,从右边插入
    @Override
    public void run(String... args) throws Exception {
        // 添加三个元素进去
        List<String> stringList = new ArrayList<>();
        stringList.add("E");
        stringList.add("E");
        stringList.add("E");
        redisTemplate.opsForList().rightPushAll("list_test", stringList);
        redisTemplate.opsForList().rightPushAll("list_test""F""G""H");
        log.info("success");
    }
  • V rightPop(K var1):从右边弹出一个值并在原集合中删除
    @Override
    public void run(String... args) throws Exception {
        String listTest = (String) redisTemplate.opsForList().rightPop("list_test");
        log.info("右边获取的值:{}", listTest);
        log.info("success");
    }
  • V rightPop(K var1, long var2, TimeUnit var4):从右边弹出数据,如果列表是空的,等待var2时间,超过这个时间,不管有没有值都会返回
    @Override
    public void run(String... args) throws Exception {
        String rightPop = (String) redisTemplate.opsForList().rightPop("list_test"5L, TimeUnit.SECONDS);
        log.info("左边弹出的值为:{}", rightPop);
        log.info("success");
    }
  • Long rightPushIfPresent(K var1, V var2):如果K这个集合存在,则从右边添加value,不存在则不添加
    @Override
    public void run(String... args) throws Exception {
        Long aLong = redisTemplate.opsForList().rightPushIfPresent("list_test1""a");
        log.info("添加数量:{}", aLong);
        log.info("success");
    }
  • V rightPopAndLeftPush(K var1, K var2):从右边弹出一个值,保存到一个新的列表中(从新集合左边插入)
    @Override
    public void run(String... args) throws Exception {
        String rightPopAndLeftPush = (String) redisTemplate.opsForList().rightPopAndLeftPush("list_test""list_test1");
        log.info("value:{}", rightPopAndLeftPush);
        log.info("success");
    }

  • V rightPopAndLeftPush(K var1, K var2, long var3, TimeUnit var5):从右边弹出一个值,如果列表是空的,则最多等待var3时间,保存到一个新的列表中(从新集合左边插入)
    @Override
    public void run(String... args) throws Exception {
        String rightPopAndLeftPush = (String) redisTemplate.opsForList().rightPopAndLeftPush("list_test""list_test1"5L, TimeUnit.SECONDS);
        log.info("value:{}", rightPopAndLeftPush);
        log.info("success");
    }
  • Long size(K var1):返回列表大小
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForList().size("list_test");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Long remove(K var1, long var2, Object var4): 列表中的值是可重复的,这个方法的作用是从列表中删除值等于var4的元素。var2> 0:删除var2个从左到右移动的值等于var4的元素;var2< 0:删除var2个从右到左移动的值等于var4元素;var2 = 0:删除等于value的所有元素。 var2大于0:
    @Override
    public void run(String... args) throws Exception {
        Long remove = redisTemplate.opsForList().remove("list_test"2"B-");
        log.info("移除数量:{}", remove);
        log.info("success");
    }

var2小于0:

    @Override
    public void run(String... args) throws Exception {
        // 添加一个元素进去
        redisTemplate.opsForList().leftPush("list_test""B-");
        Long remove = redisTemplate.opsForList().remove("list_test", -2"B-");
        log.info("移除数量:{}", remove);
        log.info("success");
    }

var2等于0:

    @Override
    public void run(String... args) throws Exception {
        // 添加三个元素进去
        List<String> stringList = new ArrayList<>();
        stringList.add("A");
        stringList.add("A");
        stringList.add("A");
        redisTemplate.opsForList().leftPushAll("list_test", stringList);
        log.info("success");
    }
    @Override
    public void run(String... args) throws Exception {
        Long remove = redisTemplate.opsForList().remove("list_test"0"A");
        log.info("删除数量:{}", remove);
        log.info("success");
    }

  • List<V> range(K var1, long var2, long var4):获取指定区间的值,0,-1是获取所有
    @Override
    public void run(String... args) throws Exception {
        List<String> listTest = redisTemplate.opsForList().range("list_test"0, -1);
        listTest.forEach(s -> {
            log.info("value:{}", s);
        });
        log.info("success");
    }
  • V index(K var1, long var2):获取列表中指定位置的值(列表中的值不会被删除)
    @Override
    public void run(String... args) throws Exception {
        String value = (String) redisTemplate.opsForList().index("list_test"3);
        log.info("value:{}", value);
        log.info("success");
    }
  • Long indexOf(K var1, V var2):获取值第一次出现的下标
    @Override
    public void run(String... args) throws Exception {
        Long aLong = redisTemplate.opsForList().indexOf("list_test""A");
        log.info("第一次出现的下标:{}", aLong);
        log.info("success");
    }
  • Long lastIndexOf(K var1, V var2):获取值最后一次出现的下标
@Override
    public void run(String... args) throws Exception {
        Long aLong = redisTemplate.opsForList().lastIndexOf("list_test""A");
        log.info("最后一次出现的下标:{}", aLong);
        log.info("success");
    }
  • void set(K var1, long var2, V var4):在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标+n则会报错
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForList().set("list_test"0"GG");
        log.info("success");
    }
  • void trim(K var1, long var2, long var4):将列表中的数据进行截取,只保留指定的数据
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForList().trim("list_test"01);
        log.info("success");
    }
  • Boolean delete(K key):删除整个集合,想删除其中一个值的话请用remove方法
    @Override
    public void run(String... args) throws Exception {
        Boolean delete = redisTemplate.delete("list_test");
        log.info("是否删除:{}", delete);
        log.info("success");
    }

7、Zset类型常用api

  • Boolean add(K var1, V var2, double var3):添加元素到变量中同时指定元素的分值(K,V已存在的情况下,score覆盖)
    @Override
    public void run(String... args) throws Exception {
        Boolean add = redisTemplate.opsForZSet().add("zset_test""A"1);
        log.info("是否添加:{}", add);
        log.info("success");
    }
  • Long add(K var1, Set<ZSetOperations.TypedTuple<V>> var2):通过TypedTuple方式新增数据
    @Override
    public void run(String... args) throws Exception {
        ZSetOperations.TypedTuple<Object> typedTuple = new DefaultTypedTuple("B"2.0);
        ZSetOperations.TypedTuple<Object> typedTuple3 = new DefaultTypedTuple("C"3.0);
        Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = new HashSet<ZSetOperations.TypedTuple<Object>>();
        typedTupleSet.add(typedTuple);
        typedTupleSet.add(typedTuple3);
        Long zsetTest = redisTemplate.opsForZSet().add("zset_test", typedTupleSet);
        log.info("数量:{}", zsetTest);
        log.info("success");
    }
  • Set<V> range(K var1, long var2, long var4):正序获取指定区间的值,0,-1是获取所有
    @Override
    public void run(String... args) throws Exception {
        Set<String> setTest = redisTemplate.opsForZSet().range("zset_test"0, -1);
        setTest.forEach(s -> {
            log.info("value:{}", s);
        });
        log.info("success");
    }
  • Set<V> reverseRange(K var1, long var2, long var4):倒序获取指定区间的值,0,-1是获取所有
    @Override
    public void run(String... args) throws Exception {
        Set<String> setTest = redisTemplate.opsForZSet().reverseRange("zset_test"0, -1);
        setTest.forEach(s -> {
            log.info("value:{}", s);
        });
        log.info("success");
    }
  • Set<V> rangeByScore(K var1, double var2, double var4):根据分值获取值
    @Override
    public void run(String... args) throws Exception {
        Set<String> test = redisTemplate.opsForZSet().rangeByScore("zset_test"07);
        test.forEach(s -> {
            log.info("value:{}", s);
        });
        log.info("success");
    }
  • Long remove(K var1, Object... var2):移除集合中的数据
    @Override
    public void run(String... args) throws Exception {
        Long remove = redisTemplate.opsForZSet().remove("zset_test""A""B");
        log.info("移除数量:{}", remove);
        log.info("success");
    }
  • Long removeRange(K var1, long var2, long var4):移除指定位置的数据
    @Override
    public void run(String... args) throws Exception {
        Long remove = redisTemplate.opsForZSet().removeRange("zset_test"01);
        log.info("移除数量:{}", remove);
        log.info("success");
    }
  • Long zCard(K var1):获取变量中元素的个数(set集合中不能有重复的值)
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForZSet().add("zset_test""A"1);
        redisTemplate.opsForZSet().add("zset_test""B"2);
        redisTemplate.opsForZSet().add("zset_test""A"3);
        Long card = redisTemplate.opsForZSet().zCard("zset_test");
        log.info("元素的个数:{}", card);
        log.info("success");
    }
  • Long size(K var1):获取集合大小
    @Override
    public void run(String... args) throws Exception {
        Long size = redisTemplate.opsForZSet().size("zset_test");
        log.info("集合大小:{}", size);
        log.info("success");
    }
  • Long removeRangeByScore(K var1, double var2, double var4):根据分值移除区间元素
    @Override
    public void run(String... args) throws Exception {
        Long removeRangeByScore = redisTemplate.opsForZSet().removeRangeByScore("zset_test"02);
        log.info("移除区间元素个数:{}", removeRangeByScore);
        log.info("success");
    }
  • Long count(K var1, double var2, double var4):根据分值查询元素个数
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForZSet().add("zset_test""F",6);
        Long count = redisTemplate.opsForZSet().count("zset_test"03);
        log.info("元素个数:{}", count);
        log.info("success");
    }
  • Double incrementScore(K var1, V var2, double var3):修改元素的分值(原子增加相应的值,注意是相加)
    @Override
    public void run(String... args) throws Exception {
        Double aDouble = redisTemplate.opsForZSet().incrementScore("zset_test""A"5);
        log.info("修改之后的值:{}", aDouble);
        log.info("success");
    }
  • Long intersectAndStore(K var1, K var2, K var3):获取两个集合的交集放到第三个集合中,分值相加
    @Override
    public void run(String... args) throws Exception {
        redisTemplate.opsForZSet().add("zset_test1""A"1);
        Long aLong = redisTemplate.opsForZSet().intersectAndStore("zset_test""zset_test1""zset_test2");
        log.info("交集数量:{}", aLong);
        log.info("success");
    }
  • Long intersectAndStore(K var1, Collection<K> var2, K var3):获取第一个集合与多个集合的交集放在第三个集合中
    @Override
    public void run(String... args) throws Exception {
        List<String> stringList = new ArrayList<>();
        stringList.add("zset_test1");
        Long aLong = redisTemplate.opsForZSet().intersectAndStore("zset_test", stringList, "zset_test3");
        log.info("交集数量:{}", aLong);
        log.info("success");
    }
  • Long unionAndStore(K var1, K var2, K var3):获取两个集合中的并集数据放入第三个集合中
    @Override
    public void run(String... args) throws Exception {
        Long unionAndStore = redisTemplate.opsForZSet().unionAndStore("zset_test""zset_test1""zset_test4");
        log.info("并集数量:{}", unionAndStore);
        log.info("success");
    }
  • Long unionAndStore(K var1, Collection<K> var2, K var3):获取多个集合的并集数据放入第三个集合中
    @Override
    public void run(String... args) throws Exception {
        List<String> stringList = new ArrayList<>();
        stringList.add("zset_test1");
        Long unionAndStore = redisTemplate.opsForZSet().unionAndStore("zset_test", stringList, "zset_test5");
        log.info("并集数量:{}", unionAndStore);
        log.info("success");
    }
  • Double score(K var1, Object var2):获取元素的分值
    @Override
    public void run(String... args) throws Exception {
        Double score = redisTemplate.opsForZSet().score("zset_test""A");
        log.info("分值:{}", score);
        log.info("success");
    }
  • Set<ZSetOperations.TypedTuple<V>> rangeByScoreWithScores(K var1, double var2, double var4):通过分值获取RedisZSetCommands.Tuples的区间值
    @Override
    public void run(String... args) throws Exception {
        Set<ZSetOperations.TypedTuple<String>> zsetTest = redisTemplate.opsForZSet().rangeByScoreWithScores("zset_test"17);
        Iterator<ZSetOperations.TypedTuple<String>> iterator = zsetTest.iterator();
        while (iterator.hasNext()){
            ZSetOperations.TypedTuple<String> next = iterator.next();
            log.info("value:{}", next.getValue());
            log.info("score:{}", next.getScore());
        }
        log.info("success");
    }
  • Set<ZSetOperations.TypedTuple<V>> reverseRangeByScoreWithScores(K var1, double var2, double var4):根据分值倒叙排序获取区间值
    @Override
    public void run(String... args) throws Exception {
        Set<ZSetOperations.TypedTuple<String>> zsetTest = redisTemplate.opsForZSet().reverseRangeByScoreWithScores("zset_test"110);
        Iterator<ZSetOperations.TypedTuple<String>> iterator = zsetTest.iterator();
        while (iterator.hasNext()){
            ZSetOperations.TypedTuple<String> next = iterator.next();
            log.info("value:{}", next.getValue());
            log.info("score:{}", next.getScore());
        }
        log.info("success");
    }

5、结尾

下两篇文章要记录的应该是RocketMq和Netty了!

如果你觉得我的文章对你有帮助话,欢迎关注我的微信公众号:"一个快乐又痛苦的程序员"(无广告,单纯分享原创文章、已pj的实用工具、各种Java学习资源,期待与你共同进步)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值