2012-05-30 13 views
32

Tengo un archivo de texto largo de Redis comandos que necesito para ejecutar utilizando la interfaz de línea de comandos Redis:Ejecución de lotes de comandos utilizando Redis cli

por ejemplo,

DEL 9.012.012

DEL 1212

DEL 12214314

etc.

Me parece que no puede encontrar una manera de introducir los comandos más rápido que uno a la vez. Hay varios cientos de miles de líneas, así que no quiero apilarlas todas en un único comando DEL, tampoco es necesario que todas se ejecuten a la vez.

Respuesta

47

el siguiente código funciona para mí con Redis 2.4.7 en Mac

./redis-cli < temp.redisCmds 

¿Satisface sus necesidades? ¿O está buscando ver si hay una forma de hacerlo programáticamente más rápido?

+0

Si autenticado, a continuación, usar 'Redis-cli -a arun

+0

En Windows PowerShell: 'Get-Content cmds.txt | redis-cli' –

7

La redis-cli --pipe se puede utilizar para la inserción masiva. Está disponible desde 2.6-RC4 y en Redis 2.4.14. Por ejemplo:

cat data.txt | redis-cli --pipe 

Más información en: http://redis.io/topics/mass-insert

+1

Si desea ejecutar varios comandos, p. seleccione # y flushdb, luego use la solución de ControlAltDel porque no funcionará con la opción --pipe. – 10basetom

+0

//, ¿Hay alguna manera de usar la opción '--pipe' que le permitiría funcionar para esta pregunta? –

+0

Pude usar la opción '--pipe' para hacer un conjunto masivo de comandos' EXPIRE', por lo que funciona para otras cosas además de la inserción. Nota: tuve que asegurarme de que cada comando en el archivo estuviera separado tanto por un retorno de carro _y_ un salto de línea, no _solo_ por un salto de línea. – Nathan

37

Si no desea hacer un archivo, utilice echo y \n

echo "DEL 9012012\nDEL 1212" | redis-cli 
+0

¡Funcionó como un amuleto para mí! – FearlessFuture

+11

En algunos sistemas operativos, debe usar 'echo -e' para hacer que OS interprete' \ n' como se esperaba. Recuerde, siempre puede cambiar el redis predeterminado diluido usando 'redis-cli -d ' – Kirzilla

+0

en CentOS, 'echo -e" DEL 9012012 \ nDEL 1212 "| redis-cli' –

Cuestiones relacionadas