程序员子龙(Java面试 + Java学习) 程序员子龙(Java面试 + Java学习)
首页
学习指南
工具
开源项目
技术书籍

程序员子龙

Java 开发从业者
首页
学习指南
工具
开源项目
技术书籍
  • 基础

  • JVM

  • Spring

  • 并发编程

  • Mybatis

  • 网络编程

  • 数据库

  • 缓存

    • Redis

      • Redis基础知识
      • redis底层数据结构
      • 发布和订阅
      • 分分钟搞懂布隆过滤器,亿级数据过滤算法你值得拥有!
      • 缓存和数据库一致性解决方案
      • 详解redis的bitmap
      • 面试常问使用缓存出现的问题
      • Redis hot key 发现以及解决办法
      • Redis实现排行榜功能实战
      • Redis 管道技术——Pipeline
      • 11、RedisTemplate使用最详解(一)--- opsForValue()
      • RedisTemplate使用最详解(二)--- opsForList()
      • RedisTemplate使用最详解(三)--- opsForHash()
      • RedisTemplate使用最详解(四)--- opsForSet()
      • RedisTemplate使用最详解(五)--- opsForZSet()
        • Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案)
        • 建议收藏!看完全面掌握,最详细的Redis总结
        • Redis分布式锁-这一篇就够了
        • 《进大厂系列》系列-Redis常见面试题
      • 本地缓存

    • 设计模式

    • 分布式

    • 高并发

    • SpringBoot

    • SpringCloudAlibaba

    • Nginx

    • 面试

    • 生产问题

    • 系统设计

    • 消息中间件

    • Java
    • 缓存
    • Redis
    程序员子龙
    2024-06-07
    目录

    RedisTemplate使用最详解(五)--- opsForZSet()

    # 1、add(K key, V value, double score)

    向指定key中添加元素,按照score值由小到大进行排列

    • 集合中对应元素已存在,会被覆盖,包括score
    redisTemplate.opsForZSet().add("zSet", "aaa", 1);
    redisTemplate.opsForZSet().add("zSet", "bbb", 2);
    redisTemplate.opsForZSet().add("zSet", "ccc", 3);
    
    1
    2
    3

    # 2、add(K key, Set tuples)

    向指定key中添加元素,按照score值由小到大进行排列

    • 集合中对应元素已存在,会被覆盖,包括score
    ZSetOperations.TypedTuple<String> objectTypedTuple1 = new DefaultTypedTuple<>("eee",9.6);
    ZSetOperations.TypedTuple<String> objectTypedTuple2 = new DefaultTypedTuple<>("fff",1.5);
    ZSetOperations.TypedTuple<String> objectTypedTuple3 = new DefaultTypedTuple<>("ggg",7.4);
    Set<ZSetOperations.TypedTuple<String>> typles = new HashSet<>();
    typles.add(objectTypedTuple1);
    typles.add(objectTypedTuple2);
    typles.add(objectTypedTuple3);
    redisTemplate.opsForZSet().add("zSet", typles);
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 3、incrementScore(K key, V v1, double delta)

    增加key对应的集合中元素v1的score值,并返回增加后的值

    • v1不存在,直接新增一个元素

    # 4、score(K key, Object o)

    获取key对应集合中o元素的score值

    Double score = redisTemplate.opsForZSet().score("zSet", "aaa");
    System.out.println("score = " + score);
    
    1
    2

    # 5、size(K key)

    获取集合的大小,地层调用的还是 zCard(K key)

    Long zSet = redisTemplate.opsForZSet().size("zSet");
    System.out.println("zSet = " + zSet);
    
    1
    2

    # 6、zCard(K key)

    获取集合大小

    Long zSet = redisTemplate.opsForZSet().zCard("zSet");
    System.out.println("zSet = " + zSet);
    
    
    1
    2
    3

    # 7、count(K key, double min, double max)

    获取指定score区间里的元素个数

    • 包括min、max

    # 8、range(K key, long start, long end)

    获取指定下标之间的值

    • (0,-1)就是获取全部
    Set zSet = redisTemplate.opsForZSet().range("zSet", 0, 2);
    System.out.println("zSet = " + zSet);
    
    
    1
    2
    3

    # 9、rangeByScore(K key, double min, double max)

    获取指定score区间的值

    Set zSet = redisTemplate.opsForZSet().rangeByScore("zSet", 1, 5);
    System.out.println("zSet = " + zSet);
    
    1
    2

    # 10、rangeByScore(K key, double min, double max, long offset, long count)

    获取指定score区间的值,然后从给定下标和给定长度获取最终值

    Set zSet = redisTemplate.opsForZSet().rangeByScore("zSet", 1, 5, 1, 2);
    System.out.println("zSet = " + zSet);
    
    
    1
    2
    3

    # 11、rank(K key, Object o)

    获取指定元素在集合中的索引,索引从0开始

    Long rank = redisTemplate.opsForZSet().rank("zSet", "aaa");
    System.out.println("rank = " + rank);
    
    
    1
    2
    3

    # 12、reverseRank(K key, Object o)

    获取倒序排列的索引值,索引从0开始

    Long rank = redisTemplate.opsForZSet().reverseRank("zSet", "eee");
    System.out.println("rank = " + rank);
    
    1
    2

    # 13、reverseRange(K key, long start, long end)

    逆序获取对应下标的元素

    Set zSet = redisTemplate.opsForZSet().reverseRange("zSet", 0, 3);
    System.out.println("zSet = " + zSet);
    
    
    1
    2
    3

    # 14、remove(K key, Object… values)

    移除集合中指定的值

    Long remove = redisTemplate.opsForZSet().remove("zSet", "aaa", "bbb");
    System.out.println("remove = " + remove);
    
    
    1
    2
    3

    # 15、removeRange(K key, long start, long end)

    移除指定下标的值

    redisTemplate.opsForZSet().removeRange("zSet", 0, 1);
    
    
    1
    2

    # 16、removeRangeByScore(K key, double min, double max)

    移除指定score区间内的值

    在快节奏的现代生活中,副业已经不再是简单的额外收入来源,它代表着一种生活方式的转变,一种对个人潜能的挖掘,以及对财务自由的追求。最重要的是,副业是实现自我价值和目标的一种方式。它使您能够按照自己的意愿和节奏,实现个人的梦想和抱负。

    上次更新: 2024/06/14, 13:58:29
    RedisTemplate使用最详解(四)--- opsForSet()
    Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案)

    ← RedisTemplate使用最详解(四)--- opsForSet() Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案)→

    最近更新
    01
    一个注解,优雅的实现接口幂等性
    11-17
    02
    MySQL事务(超详细!!!)
    10-14
    03
    阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了
    10-09
    更多文章>
    Theme by Vdoing | Copyright © 2024-2024

        辽ICP备2023001503号-2

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式