How to get values ​​from Redis using keys containing spaces?

Using telnet, I enter command line commands such as

get field with spaces get "field with spaces" get 'field with spaces' 

And all three of them return the same error.

 -ERR wrong number of arguments for 'get' command 
+6
source share
3 answers

If you only have telnet (and not 'redis-cli'), you need to use the Redis unified protocol to use spaces in key names, for example:

 telnet localhost 6379 *2 $3 GET $17 field with spaces hello (this is Redis answer if "field with spaces" contains value "hello") Explanation: *2 = Number of arguments (first arg is "GET" and second is "field with spaces") $3 = length of first argument ("GET" contains 3 bytes) $17 = length of second argument ("field with spaces" contains 17 bytes) 

Additional information on the Redis binary safe protocol: http://redis.io/topics/protocol

+5
source

What version of redis are you using? It works fine for me on 2.2.2 using double quotes

 root@this :~# redis-cli redis> set "test space" hello OK redis> get "test space" "hello" redis> get 'test space' (error) ERR wrong number of arguments for 'get' command redis> 
+10
source

get "field \ with \ spaces"

who worked for me.

0
source

Source: https://habr.com/ru/post/888994/


All Articles