Spring RedisTemplate操作-ZSet操作(6)

@Autowired
    @Resource(name="redisTemplate")
    private RedisTemplate<String, String> rt;

    public void flushdb(){
        rt.execute(new RedisCallback<Object>() {
            public String doInRedis(RedisConnection connection) throws DataAccessException {
                connection.flushDb();
                return "ok";
            }
        });
    }

    public void set(){
        flushdb();
        ZSetOperations<String, String> vo = rt.opsForZSet();
        vo.add("book", "a", 1d);
        vo.add("book", "b", 2d);
        Set<TypedTuple<String>> tuples = new HashSet<>();
        TypedTuple<String> tuple0 = new DefaultTypedTuple<String>("c", 3d);
        tuples.add(tuple0);
        TypedTuple<String> tuple1 = new DefaultTypedTuple<String>("d", 4d);
        tuples.add(tuple1);
        TypedTuple<String> tuple2 = new DefaultTypedTuple<String>("e", 5d);
        tuples.add(tuple2);

        vo.add("book", tuples);

        vo.incrementScore("book", "e", 1d);

        vo.add("book", "f", 7);
        vo.add("book", "g", 8);
        vo.add("book", "h", 9);

//        vo.remove("book", "g","h");
        vo.removeRange("book", 7, 8);
        vo.removeRangeByScore("book", 8, 9);
    }

    public void get(){
        ZSetOperations<String, String> vo = rt.opsForZSet();
        out(vo.score("book", "e"));
        out(vo.rank("book", "e"));
        out(vo.reverseRank("book", "e"));
        out(vo.zCard("book"));
        out(vo.range("book", 0, -1));
//        out(vo.rangeWithScores("book", 0, -1));
        out(vo.count("book", 2, 4)); //包含的
        out(vo.rangeByLex("book", Range.range().lte("f").gte("b")));
        out(vo.rangeByLex("book", Range.range(), Limit.limit().count(2).offset(0)));
        out(vo.rangeByLex("book", Range.range(), Limit.limit().count(2).offset(2)));
        out(vo.rangeByScore("book", 2, 4));
        out(vo.rangeByScore("book", 2, 4, 0, 2));
//        out(vo.rangeByScoreWithScores("book", 2, 4));
//        out(vo.rangeByScoreWithScores("book", 2, 4, 0, 2));

        out(vo.reverseRange("book", 0, -1));
        out(vo.reverseRangeByScore("book", 2, 4));
        out(vo.reverseRangeByScore("book", 2, 4, 0, 2));

    }

    public void out(String str){
        System.out.println(str);
    }
    public void out(Collection list){
        System.out.println(list);
    }
    public void out(long num){
        System.out.println(num);
    }
    public void out(boolean num){
        System.out.println(num);
    }
    public void out(DataType num){
        System.out.println(num);
    }
    public void out(Object str){
        System.out.println(str);
    }
    public void out(Set<TypedTuple<String>> set){
        for(TypedTuple<String> t : set){
            System.out.println(t.getValue()+"---"+t.getScore());
        }
    }
时间: 2024-11-03 02:46:52

Spring RedisTemplate操作-ZSet操作(6)的相关文章

在Spring的新版官网中下载spring的jar包操作步骤

第一步:百度搜索Spring 第二步:点击第一个链接进入 第三步:看图吧: 第四步: 第五步: 第六步: 第七步: 第八步: 第九步: 第十步: 第十一步: 第十二步: 在Spring的新版官网中下载spring的jar包操作步骤

RedisTemplate中zset类型的使用

简述 上一文中简述了使用StringRedisTemplate操作redis中的set类型,今天来记录一下操作zset类型的主要方法 代码 @RunWith(SpringRunner.class) @SpringBootTest public class ZSetDemo { @Autowired private StringRedisTemplate redisTemplate; @Test public void test1() { //向集合中插入元素,并设置分数 redisTemplat

redis python 操作 Python操作Redis数据库

原文章于此:https://www.cnblogs.com/cnkai/p/7642787.html 有个人修改与改正 连接数据库 StrictRedisfrom redis import StrictRedis #!/usr/bin/env python # coding: utf-8 from redis import StrictRedis from redis import ConnectionPool # 使用默认方式1 链接到数据库 # redis = StrictRedis(hos

操作和操作队列(NSOperation)

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // NSOperation 的使用选择: // 一般在开发中,直接使用 GCD 开启线程.做多线程的操作. // 如果 自己需要自定义框架/需要管理操作,这个时候,选择NSOperation. // 管理操作: 取消操

虚拟机软件及Linux操作系统安装操作步骤

虚拟机软件及Linux操作系统安装操作步骤 一.虚拟机软件的安装 在Windows系统系安装适合的Windows版本的VMware Workstation后,就可以在VMware Workstation上创建虚拟机了,之后运行创建的虚拟机即可在虚拟机上安装CentOS Linux操作系统的过程和在实际生产环境下安装是一样的. 1.创建一个VM虚拟机实践 1.1.创建一个新的虚拟机 1)虚拟机软件安装完毕后,双击桌面上的VMwareWorkstation图标或者在开始菜单里到VMware Work

jquery的常用操作(操作html页面的Dom对象的元素)

一:页面加载完成时,会执行jquery的方法(不需要等待图片加载完成,只要dom结构加载完成,就执行该方法) //第一种写法: $(document).ready(function() { // 执行体 }); //第二种写法 $(function() { //执行体 }); 二:用jquery获取dom对象,判断该对象是否有内容的两种方法(有返回true,没有返回false) jqObj.text().trim() var jqObj = $(this); if(jqObj.text().tr

C#DataTable 的一些操作经常操作

关于C# DataTable 的一些操作 经常操作DATATABLE  对于一些不需要再通过sql 来重复操作的   可以通过操作datatable来达到同样的效果 方法一: 也是广为人知的一种: YourDataTable.Columns.Remove("列名"); 但是这种情况只适合于去掉很少列的情况. 如果有很多列我却只要一两列呢,那就得用方法二了. 方法二: DataTable dat = YourDataTable.DefaultView.ToTable(false, new

[python学习篇][书籍学习][python standrad library][内置类型]对象测试真值,布尔值操作, 比较操作

几乎所有对象都可以比较.测试真值.转换为字符串(其实就是用repr()函数,或略有差异的str()函数来转换) 1 对象是否为真 任何对象都可以测试真值,用于if或while的条件或下面布尔运算的操作数.下面的值被视为假: None False 任何数值类型的零,例如,0. 0L.0.0. 0j. 任何空的序列,例如, ''. (). []. 任何空的映射,例如,{}. 用户定义的类的实例,如果该类定义一个__nonzero__()或__len__()的方法,在该方法返回整数零或布尔值False

jQuery-介绍 加载 选择器 样式操作 属性操作 绑定click事件

jQuery - 介绍 加载 选择器 样式操作 属性操作 绑定click事件 注意:以下部分问题不能实现效果,因该是单词拼写错误(少个t)或者没有加引号(“swing”)... jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. jQuery的版本分为1.x系列和2.x.3.x系列,1.x系列兼容低版本的浏览器,2.x.3.x系列放弃支持低版本浏览器