开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜