Redis
 sql >> Database >  >> NoSQL >> Redis

Come utilizzare l'inserimento di massa Redis?

Eccolo:

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

Il tuo problema probabilmente deriva dai separatori cr+lf. Puoi usare il comando hexdump -C per verificare questo punto:

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

Inoltre, potresti voler verificare che la tua destinazione sia un'istanza Redis recente e non una versione precedente alla 1-2 (che non supporta il "protocollo unificato").

Nota: le righe sopra funzionano bene con zsh. Se usi bash, devi aggiungere un $ prima della citazione per attivare la quotazione ANSI-C:

echo -n $'*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | hexdump -C