Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan opsForList().range() dalam redis

Cara menggunakan opsForList().range() dalam redis

王林
王林ke hadapan
2023-05-26 13:46:201692semak imbas

Kesimpulan (sila lihat di bawah untuk data ujian tertentu)

1 Jika permulaan—akhir mengekalkan susunan keseluruhan, tidak akan ada masalah

2 N-1 juga boleh menanyakan data

3 Penggunaan khas: melalui stringRedisTemplate.opsForList().range(key, 0, -1), anda boleh menanyakan indeks pertama ke. indeks terakhir ( Iaitu, semua data)

1 Persekitaran redis

Cara menggunakan opsForList().range() dalam redis

2 Kod ujian:

  @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 data (dengan mengandaikan panjang Senarai ialah N)

Cara menggunakan opsForList().range() dalam redis

4. Ujian bermula daripada indeks timbal balik

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

Daripada keputusan: yang ke-4 daripada indeks terakhir——yang pertama daripada indeks terakhir

Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: yang ke-3 daripada indeks terakhir - yang pertama daripada indeks terakhir

Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: ke-3 dari bahagian bawah indeks - ke-2 dari bahagian bawah indeks

Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: yang kedua dari bawah indeks - yang ketiga dari bahagian bawah indeks tidak akan berfungsi, dari Yang ketiga dari bahagian bawah indeks - yang kedua dari bahagian bawah indeks adalah baik.

Kesimpulan: Bermula dari indeks ke-N, susunan mesti diikuti (iaitu -N, -(N-1), -(N-2),...,..., -1). Urutan terbalik tidak boleh dilakukan. 3)

Daripada keputusan: dari indeks 1 hingga indeks 4 Cara menggunakan opsForList().range() dalam redis

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

Dari hasil: dari indeks kedua - indeks ketiga

Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: dari indeks ke-3 - indeks ke-2 tidak berfungsi, dari indeks ke-2 - indeks ke-3 boleh

Kesimpulan : Bermula dari indeks 0, ia mesti mengikut urutan (iaitu 0 , 1, 2,..., N-1), tertib terbalik tidak boleh Cara menggunakan opsForList().range() dalam redis

6. Indeks ujian Timbal balik——Indeks positif (indeks positif, subskrip 0 ialah yang pertama)

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

Daripada keputusan: ia tidak sukar untuk difahami, dari indeks kedua hingga terakhir (iaitu, baris ialah 3), kepada indeks ketiga (iaitu, baris ialah 3) Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: ia tidak sukar untuk difahami, dari yang ke-4 dari bawah indeks (iaitu, baris ialah 1), hingga ke-4 dari indeks 3 (iaitu, baris ialah 4)

Cara menggunakan opsForList().range() dalam redis

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

Daripada keputusan: Daripada indeks terakhir ke-4 (iaitu, baris ialah 1) hingga indeks ke-5 (iaitu, baris ialah 6)

Kesimpulan: Tidak ada masalah untuk melebihi tertib Cara menggunakan opsForList().range() dalam redis

Atas ialah kandungan terperinci Cara menggunakan opsForList().range() dalam redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam