redis中opsForList().range()的使用方法詳解
測試stringRedisTemplate.opsForList().range(key, start, end)的使用
結(jié)論(具體測試數(shù)據(jù)請往下看)
1、start—end總體保持著順序就沒問題
2、按照順序,即便start < -N或者end > N-1也能查詢出數(shù)據(jù)
3、特殊用法:通過stringRedisTemplate.opsForList().range(key, 0, -1)可以查詢索引第一個到索引倒數(shù)第一個(即所有數(shù)據(jù))
1、環(huán)境 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、測試數(shù)據(jù)(假設(shè)List長度為N)

4、測試從索引倒數(shù)開始
4.1、stringRedisTemplate.opsForList().range(key, -4, -1)
從結(jié)果看:從索引倒數(shù)第4個——索引倒數(shù)第1個

4.2、stringRedisTemplate.opsForList().range(key, -3, -1)
從結(jié)果看:從索引倒數(shù)第3個——索引倒數(shù)第1個

4.3、stringRedisTemplate.opsForList().range(key, -3, -2)
從結(jié)果看:從索引倒數(shù)第3個——索引倒數(shù)第2個

4.4、stringRedisTemplate.opsForList().range(key, -2, -3)
從結(jié)果看:從索引倒數(shù)第2個——索引倒數(shù)第3個不行,從索引倒數(shù)第3個——索引倒數(shù)第2個可以。
結(jié)論:從索引倒數(shù)第N個開始,要按照順序(即 -N、-(N-1)、-(N-2)、……、-1),逆序是不行的

5、測試從索引正數(shù)開始
5.1、stringRedisTemplate.opsForList().range(key, 0, 3)
從結(jié)果看:從索引第1個——索引第4個

5.2、stringRedisTemplate.opsForList().range(key, 1,2)
從結(jié)果看:從索引第2個——索引第3個

5.2、stringRedisTemplate.opsForList().range(key, 2,1)
從結(jié)果看:從索引第3個——索引第2個不行,從索引第2個——索引第3個可以
結(jié)論:從索引0開始,要按照順序(即 0、1、2、……、N-1),逆序是不行的

6、測試索引倒數(shù)——索引正數(shù)(正數(shù)索引,下標 0 為第一個)
6.1、stringRedisTemplate.opsForList().range(key, -2, 2)
從結(jié)果看:這樣就不難理解了,從索引倒數(shù)第2個(即row為3),到索引第3個(即row為3)

6.2、stringRedisTemplate.opsForList().range(key, -4, 3)
從結(jié)果看:這樣就不難理解了,從索引倒數(shù)第4個(即row為1),到索引第3個(即row為4)

6.3、stringRedisTemplate.opsForList().range(key, -4, 5)
從結(jié)果看:從索引倒數(shù)第4個(即row為1),到索引第5個(即row為6)
結(jié)論:按順序超出是沒問題的

總結(jié)
到此這篇關(guān)于redis中opsForList().range()的使用方法詳解的文章就介紹到這了,更多相關(guān)redis opsForList().range()的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Ubuntu?14.04系統(tǒng)上備份和恢復(fù)Redis數(shù)據(jù)詳細步驟
這篇文章主要給大家介紹了關(guān)于在Ubuntu?14.04系統(tǒng)上備份和恢復(fù)Redis數(shù)據(jù)的詳細步驟,文中通過代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考借鑒價值,需要的朋友可以參考下2024-04-04
Redis底層數(shù)據(jù)結(jié)構(gòu)SkipList的實現(xiàn)
本文主要介紹了Redis底層數(shù)據(jù)結(jié)構(gòu)SkipList的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
Redis分布式鎖的實現(xiàn)方式(redis面試題)
這篇文章主要介紹了Redis分布式鎖的實現(xiàn)方式(面試常見),需要的朋友可以參考下2020-01-01

