How to get values from Redis using keys which contains spaces?
Using telnet I type in command line commands like this
get field with spaces开发者_开发技巧
get "field with spaces"
get 'field with spaces'
And all this three return same error.
-ERR wrong number of arguments for 'get' command
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>
If you only have telnet (and not 'redis-cli'), then you need to use the Redis binary-safe 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)
More information about Redis binary-safe protocol: http://redis.io/topics/protocol
get "field\ with\ spaces"
that worked for me.
精彩评论