首頁  >  文章  >  資料庫  >  redis中的opsForList().range()如何使用

redis中的opsForList().range()如何使用

王林
王林轉載
2023-05-26 13:46:201692瀏覽

結論(具體測試數據請往下看)

1、start—end總體保持著順序就沒問題

2、按照順序,即便start N-1也能查詢出資料

3、特殊用法:透過stringRedisTemplate.opsForList().range(key, 0, -1)可以查詢索引第一個到索引倒數第一個(即所有資料)

1、環境redis

redis中的opsForList().range()如何使用

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)

redis中的opsForList().range()如何使用

4、測試從索引倒數開始

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

從結果看:從索引倒數第4個——索引倒數第1個

redis中的opsForList().range()如何使用

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

從結果看:從索引倒數第3個——索引倒數第1個

redis中的opsForList().range()如何使用

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

從結果看:從索引倒數第3個——索引倒數第2個

redis中的opsForList().range()如何使用

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

從結果看:從索引倒數第2個——索引倒數第3個不行,從索引倒數第3個——索引倒數第2個可以。

結論:從索引倒數第N個開始,要依照順序(即-N、-(N-1)、-(N-2)、……、-1),逆序是不行的

redis中的opsForList().range()如何使用

5、測試從索引正數開始

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

從結果看:從索引第1個——索引第4個

redis中的opsForList().range()如何使用

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

從結果看:從索引第2個——索引第3個

redis中的opsForList().range()如何使用

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

從結果看:從索引第3個——索引第2個不行,從索引第2個——索引第3個可以

#結論:從索引0開始,要依照順序(即0、1、2、……、N-1),逆序是不行的

redis中的opsForList().range()如何使用

##6、測試索引倒數——索引正數(正數索引,下標0 為第一個)

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

#從結果看:這樣就不難理解了,從索引倒數第2個(即row為3),到索引第3個(即row為3)

redis中的opsForList().range()如何使用

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

從結果看:這樣就不難理解了,從索引倒數第4個(即row為1),到索引第3個(即row為4)

redis中的opsForList().range()如何使用

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

#從結果看:從索引倒數第4個(即row為1),到索引第5個(即row為6)

#結論:依序超出是沒問題的

redis中的opsForList().range()如何使用

以上是redis中的opsForList().range()如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除