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()的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • redis中的配置以及密码设置方式

    redis中的配置以及密码设置方式

    这篇文章主要介绍了redis中的配置以及密码设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • redis击穿 雪崩 穿透超详细解决方案梳理

    redis击穿 雪崩 穿透超详细解决方案梳理

    这篇文章主要为大家介绍了Redis击穿穿透雪崩产生原因及解决思路的解决方案参考,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步
    2022-03-03
  • 关于Redis未授权访问的问题

    关于Redis未授权访问的问题

    这篇文章主要介绍了Redis未授权访问的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Redis教程(一):Redis简介

    Redis教程(一):Redis简介

    这篇文章主要介绍了Redis教程(一):Redis简介,本文是系列文章的第一篇,欢迎大家跟随本教程学习Redis数据库,需要的朋友可以参考下
    2015-04-04
  • redis的主从配置方法详解

    redis的主从配置方法详解

    今天为大家介绍下linux系统下redis的主从配置方法,Linux系统下的redis的主从配置方法非常简单下面是具体的操作步骤
    2018-09-09
  • 详解redis中的锁以及使用场景

    详解redis中的锁以及使用场景

    这篇文章主要介绍了详解redis中的锁以及使用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 控制Redis的hash的field中的过期时间

    控制Redis的hash的field中的过期时间

    这篇文章主要介绍了控制Redis的hash的field中的过期时间问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Redis分布式缓存:微信抢红包解决方案

    Redis分布式缓存:微信抢红包解决方案

    微信抢红包已经在我们生活中很常见的场景了,特别是年底公司开年会和春节2个时间段。本文主要介绍了通过Redis实现微信抢红包功能,感兴趣的小伙伴可以了解一下
    2021-12-12
  • Redis未授权访问配合SSH key文件利用详解

    Redis未授权访问配合SSH key文件利用详解

    这篇文章主要给大家介绍了关于Redis未授权访问配合SSH key文件利用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Redis位图bitmap操作

    Redis位图bitmap操作

    本文主要介绍了Redis位图bitmap操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论