Importar el shell de Redis a la base de datos especificada
1. Exportar redis
[plain]?ver simple?copia
#! /bin/bash?
REDIS_HOST=localhost?
REDIS_PORT=6379?
¿REDIS_DB=1?
NOMBRE CLAVE=redis:hash:*?
KEYFILE=key.txt?"keys?$keyname"?|?redis-cli?-h?$REDIS_HOST?-p?$REDIS_PORT?-n?$REDIS_DB?>?$KEYFILE?
OUTFILE=valuelist.txt?
TEMPFILE=$OUTFILE.tmp?
echo?>?
para la clave en `cat? $KEYFILE`?
do
echo?"HGETALL?$key"?|?redis-cli?-h?$REDIS_HOST?-p?$REDIS_PORT?-n?$ ¿REDIS_DB?>>?$TEMPFILE
echo?"GET?$key"?|?redis-cli?-h?$REDIS_HOST?-p?$REDIS_PORT?-n?$REDIS_DB?>>?
¿Listo? 2. Organizar los resultados exportados
[plain]?view Plain?copy
cat?$TEMPFILE|xargs?-n?2|awk?-F?"? v?KEYNAME=$KEYNAME?'{print?"HSET?"KEYNAME?"?" ?$1,?"\$OUTFILE?$OUTFILE? donde xargs -n 2 combina dos líneas en una sola y se reemplaza el carácter de nueva línea por un espacio
Luego use awk para separar con espacios, $1 es el valor clave, $2 es el valor clave
Convierta al formato HSET nuevamente, usando la variable KEYNAME predefinida -v
p>
Finalmente convertido al formato HSET KEYNAME KEY "VALUE"
3. Importar el resultado de la conversión
[plain]?view Plain?copy
cat?$OUTFILE?|?redis-cli?-h?localhost?-p?6379
Por segunda vez, utilice Redis Dump and Restore directamente para exportar e importar p>
[simple]?ver simple?copia
redis-cli?--raw?dump?test?|?head?-c-1?|?redis-cli?-x? ¿restaurar?prueba1?