tutorial Comment supprimer tout dans Redis?




redis-cli (12)

Je veux supprimer toutes les clés. Je veux tout effacer et me donner une base de données vide.

Existe-t-il un moyen de le faire dans le client Redis ?


Après avoir démarré le serveur Redis en utilisant: service redis-server start --port 8000 ou redis-server .

Utilisez redis-cli -p 8000 pour vous connecter au serveur en tant que client dans un autre terminal.

Vous pouvez utiliser soit

  1. FLUSHDB - Supprime toutes les clés du DB sélectionné. Cette commande n'échoue jamais. La complexité temporelle pour cette opération est O (N), N étant le nombre de clés dans la base de données.
  2. FLUSHALL - Supprime toutes les clés de toutes les bases de données existantes, pas seulement celles qui sont actuellement sélectionnées. Cette commande n'échoue jamais. La complexité temporelle pour cette opération est O (N), N étant le nombre de clés dans toutes les bases de données existantes.

Consultez la documentation pour l'option ASYNC pour les deux.

Si vous utilisez Redis via son interface python, utilisez ces deux fonctions pour la même fonctionnalité:

def flushall(self):
    "Delete all keys in all databases on the current host"
    return self.execute_command('FLUSHALL')

et

def flushdb(self):
    "Delete all keys in the current database"
    return self.execute_command('FLUSHDB')

FLUSHALL Supprime toutes les clés de toutes les bases de données existantes. Pour la version Redis> 4.0, FLUSHALL ASYNC est pris en charge et s'exécute dans un thread d'arrière-plan sans bloquer le serveur https://redis.io/commands/flushall

FLUSHDB - Supprime toutes les clés de la base de données sélectionnée. https://redis.io/commands/flushdb

La complexité temporelle pour effectuer les opérations sera O (N) où N est le nombre de clés dans la base de données.

La réponse de la redis sera une simple chaîne "OK"



redis-cli -h <host> -p <port> flushall

Il va supprimer toutes les données du client connecté (avec hôte et port)


Vous pouvez utiliser FLUSHALL qui supprimera toutes les clés de votre base de données. Où FLUSHDB va supprimer toutes les clés de notre base de données actuelle.


flushall Supprimer toutes les clés de toutes les bases de données

flushdb Supprimer toutes les clés de la base de données en cours

SCRIPT FLUSH Supprime tous les scripts du cache de script.


  1. Arrêtez l'instance Redis.
  2. Supprimer le fichier RDB.
  3. Démarrer l'instance Redis.

Avec redis-cli:

  • FLUSHDB - Supprime les données de la base de données CURRENT de votre connexion.
  • FLUSHALL - Supprime les données de TOUTES les bases de données.

Documentation Redis:

Par exemple, dans votre shell:

redis-cli flushall

Si vous utilisez la gemme redis-rb, vous pouvez simplement appeler:

your_redis_client.flushdb

Heads up que FLUSHALL peut être exagéré. FLUSHDB est le seul à vider une base de données. FLUSHALL effacera tout le serveur. Comme dans toutes les bases de données sur le serveur. Puisque la question portait sur la vidange d'une base de données, je pense que c'est une distinction assez importante pour mériter une réponse distincte.


Cette méthode a fonctionné pour moi - supprimer tout de la base de données connectée actuelle sur votre cluster Jedis.

public static void resetRedis() {
    jedisCluster = RedisManager.getJedis(); // your JedisCluster instance

    for (JedisPool pool : jedisCluster.getClusterNodes().values()) {

        try (Jedis jedis = pool.getResource()) {
            jedis.flushAll();
        }
        catch (Exception ex){
            System.out.println(ex.getMessage());
        }
    }

}

Je pense parfois arrêter le redis-server et supprimer les fichiers rdb, aof, assurez-vous qu'il n'y a pas de données rechargeables. puis démarrez le redis-server, maintenant c'est nouveau et vide.





redis