¿Hay un comando Redis para recuperar todas las claves en la base de datos? He visto algunas bibliotecas de python-redis ir a buscarlos. Pero me preguntaba si es posible desde redis-client.¿Comando Redis para obtener todas las claves disponibles?
Respuesta
Intente ver el comando KEYS
. KEYS *
listará todas las claves almacenadas en redis.
EDIT: tenga en cuenta la advertencia en la parte superior de la página KEYS
documentación:
complejidad Tiempo: O (N) donde N es el número de llaves en la base de datos, bajo el supuesto de que los nombres clave en la base de datos y el patrón dado tienen una longitud limitada.
ACTUALIZACIÓN (v2.8 o superior):SCAN
es una alternativa superior a KEYS
, en el sentido de que no bloquea el servidor ni consume recursos significativos. Prefiero usarlo.
Actualizado para la Redis 2,8 y por encima de
Como se señaló en los comentarios de las respuestas anteriores a esta pregunta, KEYS
es un comando potencialmente peligroso, ya que su servidor Redis no estará disponible para realizar otras operaciones mientras se sirve la misma. Otro riesgo con KEYS
es que puede consumir (dependiendo del tamaño de su espacio de claves) una gran cantidad de RAM para preparar el búfer de respuesta, lo que posiblemente agote la memoria de su servidor.
La versión 2.8 de Redis introdujo la familia de comandos SCAN que son mucho más educados y se pueden usar para el mismo propósito.
La CLI proporciona también una buena manera de trabajar con él:
$ redis-cli --scan --pattern '*'
Tome un vistazo a continuación Redis Cheat Sheet. Para obtener un subconjunto de claves Redis con el Redis-cli i utilizar el comando
KEYS "prefix:*"
Puede suceder que el uso de Redis-cli, se conecta a su remota Redis-servidor, y luego el comando:
KEYS *
no aparece nada, o mejor, se nota:
(empty list or set)
Si está absolutamente seguro de que el servidor Redis que se utiliza es la que tiene los datos, entonces tal vez sus Redis-cl No me estoy conectando a la instancia de base de datos correcta de Redis.
Como se menciona en los documentos de Redis, las conexiones nuevas se conectan por defecto al db 0.
En mi caso el comando KEYS
no estaba recuperando resultados porque mi base de datos era 1. Para seleccionar la base de datos que desea, use SELECT.
El db se identifica por un número entero.
SELECT 1
KEYS *
puedo enviar esta información porque ninguna de las respuestas anteriores estaba resolviendo mi problema.
Sí, puede obtener todas las claves mediante el uso de esta
var redis = require('redis');
redisClient = redis.createClient(redis.port, redis.host);
redisClient.keys('*example*', function (err, keys) {
})
No es exactamente lo que el OP estaba pidiendo (redis-cli), pero gracias para señalar esto sin embargo. – Herick
-> Obtener todas las claves de Redis-CLI
-redis 127.0.0.1:6379> keys *
-> Obtener lista de patrones
-redis 127.0.0.1:6379> keys d??
Esto producirá claves que comienzan por 'd' con tres caracteres.
-redis 127.0.0.1:6379> keys *t*
Este wil obtener las claves por 'T' partidos personaje en clave
-> Contar teclas de línea de comandos
-redis-cli keys * |wc -l
-> O puede utilizar dbsize
-redis-cli dbsize
Acabo de copiar las respuestas y lo intenté. Dio la "clave de comando desconocido" ". "clave" no es el comando, "claves" es. Corrija 'clave * t *' con 'teclas * t *'. –
Gracias amigo por esa información. Fue mi error. Ahora estoy en el móvil. Voy a cambiar el comando eairlier. – denny
SCAN no requiere que el cliente cargue todas las claves en la memoria como lo hace KEYS. SCAN te da un iterador que puedes usar. Tenía un 1B registros en mi redis y nunca pude obtener suficiente memoria para devolver todas las claves a la vez.
Aquí hay un fragmento de pitón para obtener todas las claves de la tienda coinciden con un patrón y eliminarlos:
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
for key in r.scan_iter("key_pattern*"):
print key
redis-cli -h <host> -p <port> keys *
donde * es el patrón para listar todas las claves de uso de ejemplo
Tuve que citar la estrella, de la siguiente manera: 'redis-cli -h
- 1. Obtener todas las posibles monedas disponibles
- 2. En redis, ¿cómo elimino las claves?
- 3. ¿Cómo buscar en redis las claves hash?
- 4. Nombre de usuario o ID para las claves en Redis
- 5. Android listar todas las imágenes disponibles
- 6. Javascript: Obtener todas las claves existentes en una matriz JSON
- 7. ¿Cómo mostrar todas las rutas disponibles en Spring?
- 8. PostgreSQL: ¿Cómo indexar todas las claves externas?
- 9. obteniendo todas las claves para un mapa como $ _POST
- 10. Omitir todas las tablas comando
- 11. ¿Cómo obtener valores de Redis usando claves que contienen espacios?
- 12. claves encontrar que no caduca en Redis
- 13. ¿Hay algún comando para actualizar redis?
- 14. ¿Cómo obtener una lista de todas las fuentes actualmente disponibles para Matplotlib?
- 15. Redis: Mostrar tamaño/tamaño de la base de datos para las claves
- 16. ¿Cómo puedo obtener todos los juegos en redis?
- 17. Cómo obtener todas las claves (solo las claves) del objeto del diccionario sin pasar por cada ciclo
- 18. Redis: ¿Cómo puedo ordenar mi hash por claves?
- 19. ¿Cómo obtener las claves de ContentValues?
- 20. EventLog - Obtener registros disponibles
- 21. ¿Cuál es el comando django para eliminar todas las tablas?
- 22. Con ImageMagick, ¿cómo puede ver todas las fuentes disponibles?
- 23. SQL: elimine todos los datos de todas las tablas disponibles
- 24. PHP Obtenga todas las claves numéricas/anónimas en una matriz
- 25. ¿Cuáles son todas las alternativas disponibles a WCF?
- 26. python's scrapy no parece obtener datos de todas las URL disponibles
- 27. Cómo obtener git para realizar cambios en todas las ramas
- 28. En Redis, ¿hay todas las claves almacenadas en la misma "tabla"? y si es así, ¿cómo afecta el rendimiento?
- 29. ¿Cómo enumerar todas las interfaces de red disponibles?
- 30. Enumeración de todas las letras de unidad disponibles en Windows
CLI: ' redis-cli keys "*" ' –
Compruebe otra respuesta de Itamar Haber para que 2.8 y versiones posteriores utilicen SCAN en su lugar https://stackoverflow.com/questions/5252099/redis-command-to-get-all-available-keys/ 23877883 # 23877883 – enator