redis中opsForList().range()的使用方法详解

 更新时间:2023年03月15日 09:41:09   作者:龍腾万里  
这篇文章主要给大家介绍了关于redis中opsForList().range()的使用方法,文中通过实例代码以及图文介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友可以参考下

测试stringRedisTemplate.opsForList().range(key, start, end)的使用

结论(具体测试数据请往下看)

1、start—end总体保持着顺序就没问题

2、按照顺序,即便start < -N或者end > N-1也能查询出数据

3、特殊用法:通过stringRedisTemplate.opsForList().range(key, 0, -1)可以查询索引第一个到索引倒数第一个(即所有数据)

1、环境 redis

2、测试代码:

  @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Test
    void testRedis() {
        String key = "testList";
        String[] data = new String[]{"1_1", "1-2", "2_1", "2_2"};
        Boolean flag = stringRedisTemplate.hasKey(key);
        if (!flag) {
            stringRedisTemplate.opsForList().leftPushAll(key, data);
        }
        List<String> range = stringRedisTemplate.opsForList().range(key, -100, -1);
        System.out.println("range = " + range);
    }

3、测试数据(假设List长度为N)

4、测试从索引倒数开始

4.1、stringRedisTemplate.opsForList().range(key, -4, -1)

从结果看:从索引倒数第4个——索引倒数第1个

4.2、stringRedisTemplate.opsForList().range(key, -3, -1)

从结果看:从索引倒数第3个——索引倒数第1个

4.3、stringRedisTemplate.opsForList().range(key, -3, -2)

从结果看:从索引倒数第3个——索引倒数第2个

4.4、stringRedisTemplate.opsForList().range(key, -2, -3)

从结果看:从索引倒数第2个——索引倒数第3个不行,从索引倒数第3个——索引倒数第2个可以。

结论:从索引倒数第N个开始,要按照顺序(即 -N、-(N-1)、-(N-2)、……、-1),逆序是不行的

5、测试从索引正数开始

5.1、stringRedisTemplate.opsForList().range(key, 0, 3)

从结果看:从索引第1个——索引第4个

5.2、stringRedisTemplate.opsForList().range(key, 1,2)

从结果看:从索引第2个——索引第3个

5.2、stringRedisTemplate.opsForList().range(key, 2,1)

从结果看:从索引第3个——索引第2个不行,从索引第2个——索引第3个可以

结论:从索引0开始,要按照顺序(即 0、1、2、……、N-1),逆序是不行的

6、测试索引倒数——索引正数(正数索引,下标 0 为第一个)

6.1、stringRedisTemplate.opsForList().range(key, -2, 2)

从结果看:这样就不难理解了,从索引倒数第2个(即row为3),到索引第3个(即row为3)

6.2、stringRedisTemplate.opsForList().range(key, -4, 3)

从结果看:这样就不难理解了,从索引倒数第4个(即row为1),到索引第3个(即row为4)

6.3、stringRedisTemplate.opsForList().range(key, -4, 5)

从结果看:从索引倒数第4个(即row为1),到索引第5个(即row为6)

结论:按顺序超出是没问题的

总结 

到此这篇关于redis中opsForList().range()的使用方法详解的文章就介绍到这了,更多相关redis opsForList().range()的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS Linux系统下安装Redis过程和配置参数说明

    CentOS Linux系统下安装Redis过程和配置参数说明

    这篇文章主要介绍了CentOS Linux系统下安装Redis过程和配置参数说明,需要的朋友可以参考下
    2014-10-10
  • Springboot/Springcloud项目集成redis进行存取的过程解析

    Springboot/Springcloud项目集成redis进行存取的过程解析

    大家都知道Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(sorted set:有序集合),本文重点给大家介绍Springboot/Springcloud项目集成redis进行存取的过程,需要的朋友参考下吧
    2021-12-12
  • 深入理解Redis7哨兵模式(保姆级教学)

    深入理解Redis7哨兵模式(保姆级教学)

    Redis的主从复制存在一定的缺陷,为了解决这一问题,Redis官方推荐一种高可用方案哨兵模式,本文主要介绍了深入理解Redis7哨兵模式,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Redis高可用部署架构的实现

    Redis高可用部署架构的实现

    本文主要介绍了Redis高可用部署架构的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • redis缓存的简单操作(get、put)

    redis缓存的简单操作(get、put)

    这篇文章主要介绍了redis缓存的简单操作,包括引入jedisjar包、配置redis、RedisDao需要的一些工具等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • redis执行lua脚本的实现方法

    redis执行lua脚本的实现方法

    redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到redis中执行。本文就介绍了redis执行lua脚本的实现方法,感兴趣的可以了解一下
    2021-11-11
  • redis单线程快的原因和原理

    redis单线程快的原因和原理

    在本篇文章中小编给大家整理了关于redis单线程为什么快的原因和具体实例,有兴趣的朋友们可以参考下。
    2019-06-06
  • Redis实现优惠券限一单限制详解

    Redis实现优惠券限一单限制详解

    这篇文章主要介绍了Redis解决优惠券秒杀应用案例,本文先讲了抢购问题,指出其中会出现的多线程问题,提出解决方案采用悲观锁和乐观锁两种方式进行实现,然后发现在抢购过程中容易出现一人多单现象,需要的朋友可以参考下
    2022-12-12
  • 关于linux redis安装及安装遇到的问题

    关于linux redis安装及安装遇到的问题

    这篇文章主要介绍了关于linux redis安装及安装遇到的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Redis源码解析sds字符串实现示例

    Redis源码解析sds字符串实现示例

    这篇文章主要为大家介绍了Redis源码解析sds字符串实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论