Maison >base de données >Redis >Comment utiliser opsForList().range() dans Redis

Comment utiliser opsForList().range() dans Redis

王林
王林avant
2023-05-26 13:46:201740parcourir

Conclusion (veuillez voir ci-dessous pour les données de test spécifiques)

1. Si start—end maintient l'ordre global, il n'y aura aucun problème

2 Selon la commande, même si start < -N ou end > -1, les données peuvent être interrogées

3. Utilisation spéciale : via stringRedisTemplate.opsForList().range(key, 0, -1), vous pouvez interroger le premier au dernier index (c'est-à-dire toutes les données)

1. . Environnement redis

Comment utiliser opsForList().range() dans Redis

2. Code de test :

  @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. Données de test (en supposant que la longueur de la liste est N)

Comment utiliser opsForList().range() dans Redis

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

À partir des résultats : À partir du 4ème dernier index - Le 1er du dernier index

Comment utiliser opsForList().range() dans Redis4.2, stringRedisTemplate.opsForList().range(key, - 3, -1)

D'après les résultats Regardez : le 3ème à partir du bas de l'index - le 1er à partir du bas de l'index

Comment utiliser opsForList().range() dans Redis4.3, stringRedisTemplate.opsForList().range(key, -3, - 2)

Regardez les résultats : le 1er à partir du bas de l'index 3——Le deuxième à partir du bas de l'index

Comment utiliser opsForList().range() dans Redis4.4, stringRedisTemplate.opsForList().range(key, -2, - 3)

D'après les résultats : Le deuxième à partir du bas de l'index - le troisième à partir du bas de l'index ne fonctionnera pas, mais le troisième à partir du bas de l'index - le deuxième à partir du bas de l'index le fera travail.

Conclusion : À partir du Nième index, l'ordre doit être (c'est-à-dire -N, -(N-1), -(N-2),..., -1 L'ordre inverse n'est pas possible

). Comment utiliser opsForList().range() dans Redis5. Le test part de l'index positif

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

D'après les résultats : du 1er index - le 4ème index

Comment utiliser opsForList().range() dans Redis5.2, stringRedisTemplate .opsForList().range(key, 1,2)

À partir des résultats : Du 2ème index au 3ème index

Comment utiliser opsForList().range() dans Redis5.3, stringRedisTemplate.opsForList() range(key, 2,1)

. D'après les résultats : à partir du 3ème indice - le 2ème indice n'est pas possible, mais à partir du 2ème indice - le 3ème indice est OK

Conclusion : à partir de l'indice 0 Pour commencer, il faut suivre l'ordre (c'est à dire 0, 1, 2 ,..., N-1), l'ordre inverse n'est pas possible

Comment utiliser opsForList().range() dans Redis6. Testez l'index réciproque - index positif (index positif, marquez ensuite 0 comme premier)

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

D'après les résultats : il n'est pas difficile de comprendre, le deuxième du dernier index (c'est-à-dire la ligne est 3 ), jusqu'au 3ème de l'index (c'est-à-dire la ligne est 3)

Comment utiliser opsForList().range() dans Redis6.2, stringRedisTemplate.opsForList().range(key, -4, 3)

D'après les résultats : Ce n'est pas difficile à comprendre, à partir de l'index Le 4ème à partir du bas (c'est-à-dire, la ligne est 1), au 3ème index (c'est-à-dire que la ligne est 4)

Comment utiliser opsForList().range() dans Redis6.3, stringRedisTemplate.opsForList().range(key, -4, 5)

Des résultats : Du 4ème au dernier (c'est-à-dire que la ligne est 1), jusqu'au 5ème index (c'est-à-dire que la ligne est 6)

Conclusion : ce n'est pas un problème de dépasser dans l'ordre

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer