values query keys hdel delete commands and all redis

query - ¿Cómo borro todo en Redis?



redis query all keys (18)

  1. Detener la instancia de redis.
  2. Eliminar archivo RDB.
  3. Iniciar la instancia de redis.

Quiero borrar todas las claves. Quiero que todo se borre y dame una base de datos en blanco.

¿Hay alguna manera de hacer esto en el cliente de Redis ?


A la FLUSHALL que FLUSHALL puede ser una exageración. FLUSHDB es la única para vaciar una base de datos. FLUSHALL borrará todo el servidor. Como en todas las bases de datos del servidor. Dado que la pregunta era acerca de vaciar una base de datos, creo que esta es una distinción lo suficientemente importante como para merecer una respuesta por separado.


Abre redis-cli y escribe:

FLUSHALL


Con redis-cli:

  • FLUSHDB: elimina los datos de la base de datos ACTUAL de su conexión.
  • FLUSHALL - Elimina datos de TODAS las bases de datos.

Documentación de redis:

Por ejemplo, en tu shell:

redis-cli flushall


Creo que a veces detiene el servidor redis y borra rdb , aof of files。 asegúrese de que no haya datos que puedan recargarse. a continuación, inicie el servidor redis, ahora es nuevo y está vacío.


Después de iniciar el servidor Redis con: service redis-server start --port 8000 o redis-server .

Use redis-cli -p 8000 para conectarse al servidor como cliente en una terminal diferente.

Puedes usar cualquiera

  1. FLUSHDB - Borrar todas las claves de la base de datos seleccionada actualmente. Este comando nunca falla. La complejidad del tiempo para esta operación es O (N), siendo N el número de claves en la base de datos.
  2. FLUSHALL : elimine todas las claves de todas las bases de datos existentes, no solo la seleccionada actualmente. Este comando nunca falla. La complejidad del tiempo para esta operación es O (N), siendo N el número de claves en todas las bases de datos existentes.

Consulte la documentación para la opción ASYNC para ambos.

Si está utilizando Redis a través de su interfaz de Python, use estas dos funciones para la misma funcionalidad:

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

y

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


Es mejor si puedes tener RDM (Redis Desktop Manager). Puede conectarse a su servidor redis creando una nueva conexión en RDM.

Una vez que esté conectado, puedes verificar los datos en vivo, y también puedes jugar con cualquier comando redis.

Abriendo un cli en RDM.

1) Haga clic derecho en la conexión, verá una opción de consola, simplemente haga clic en ella y se abrirá una nueva ventana de consola en la parte inferior de RDM.

Volviendo a su pregunta, FLUSHALL es el comando, simplemente puede escribir FLUSHALL en el redis cli.

Además, si desea saber sobre cualquier comando redis y su uso adecuado, vaya al enlace a continuación. https://redis.io/commands .


Este método funcionó para mí: elimine toda la base de datos conectada actual de su grupo 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()); } } }


FLUSHALL Borra todas las claves de todas las bases de datos existentes. Para la versión Redis> 4.0, se admite FLUSHALL ASYNC, que se ejecuta en un subproceso en segundo plano sin bloqueo del servidor https://redis.io/commands/flushall

FLUSHDB: elimina todas las claves de la base de datos seleccionada. https://redis.io/commands/flushdb

La complejidad del tiempo para realizar las operaciones será O (N) donde N es el número de claves en la base de datos.

La Respuesta del redis será una simple cadena "OK"


Hay diferentes enfoques. Si desea hacer esto desde un lugar remoto, envíe flushall a esa instancia, a través de la línea de comandos redis-cli o cualquier otra herramienta, por ejemplo, telnet, un lenguaje de programación SDK. O simplemente inicie sesión en ese servidor, finalice el proceso, elimine su archivo dump.rdb y appendonly.aof (haga una copia de seguridad de ellos antes de eliminarlos).


Las respuestas hasta ahora son absolutamente correctas; se eliminan todas las claves.

Sin embargo, si también desea eliminar todos los scripts Lua de la instancia de Redis, debe seguirlo por:

DESCARGA DE ESCRITURA

El OP hace dos preguntas; Esto completa la segunda pregunta ( todo borrado).


Puede usar FLUSHALL que eliminará todas las claves de todas sus bases de datos. Donde FLUSHDB eliminará todas las claves de nuestra base de datos actual.


Si está utilizando la gema redis-rb, simplemente puede llamar al:

your_redis_client.flushdb


Sus preguntas parecen ser sobre eliminar claves completas en una base de datos. En este caso deberías probar:

  1. Conectar a redis. Puede usar el comando redis-cli (si se ejecuta en el puerto 6379), de lo contrario también deberá especificar el número de puerto.
  2. Seleccione su base de datos (comando select {Index} )
  3. Ejecuta el comando flushdb

Si desea vaciar las claves en todas las bases de datos, debe probar con flushall .


Una opción más de mi lado:

En nuestras bases de datos de producción y preproducción hay miles de claves. De vez en cuando necesitamos eliminar algunas claves (por alguna máscara), modificarlas según algún criterio, etc. Por supuesto, no hay forma de hacerlo manualmente desde CLI, especialmente con fragmentación (512 dbs lógicas en cada examen físico).

Para ello escribo una herramienta de cliente java que hace todo este trabajo. En caso de eliminación de claves, la utilidad puede ser muy simple, solo una clase allí:

public class DataCleaner { public static void main(String args[]) { String keyPattern = args[0]; String host = args[1]; int port = Integer.valueOf(args[2]); int dbIndex = Integer.valueOf(args[3]); Jedis jedis = new Jedis(host, port); int deletedKeysNumber = 0; if(dbIndex >= 0){ deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, dbIndex); } else { int dbSize = Integer.valueOf(jedis.configGet("databases").get(1)); for(int i = 0; i < dbSize; i++){ deletedKeysNumber += deleteDataFromDB(jedis, keyPattern, i); } } if(deletedKeysNumber == 0) { System.out.println("There is no keys with key pattern: " + keyPattern + " was found in database with host: " + host); } } private static int deleteDataFromDB(Jedis jedis, String keyPattern, int dbIndex) { jedis.select(dbIndex); Set<String> keys = jedis.keys(keyPattern); for(String key : keys){ jedis.del(key); System.out.println("The key: " + key + " has been deleted from database index: " + dbIndex); } return keys.size(); } }

Escribo este tipo de herramientas que encuentro muy fáciles y no gasto más de 5-10 minutos.



flushall Eliminar todas las claves de todas las bases de datos

flushdb Eliminar todas las claves de la base de datos actual

SCRIPT FLUSH Elimina todos los scripts del caché de script.


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

Se eliminarán todos los datos del cliente conectado (con el host y el puerto)