Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como usar a inserção em massa do Redis?


Aqui está:
echo -n '*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | ./redis-cli --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 1

Seu problema provavelmente vem dos separadores cr+lf. Você pode usar o comando hexdump -C para verificar este ponto:
echo -n '*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | hexdump -C
00000000  2a 33 0d 0a 24 33 0d 0a  73 65 74 0d 0a 24 33 0d  |*3..$3..set..$3.|
00000010  0a 6b 65 79 0a 0d 24 35  0d 0a 76 61 6c 75 65 0d  |.key..$5..value.|
00000020  0a                                                |.|
00000021

Além disso, você pode querer verificar se seu destino é uma instância recente do Redis e não uma versão pré-1-2 (que não suporta o "protocolo unificado").

Observação: as linhas acima funcionam bem com zsh. Se você usar o bash, precisará adicionar um $ antes da cotação para acionar a cotação ANSI-C:
echo -n $'*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | hexdump -C