Как получить значения из Redis, используя ключи, которые содержат пробелы? - PullRequest
6 голосов
/ 25 мая 2011

Используя telnet, я набираю в командной строке команды, подобные этой

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

И все эти три возвращают одну и ту же ошибку.

-ERR wrong number of arguments for 'get' command

Ответы [ 3 ]

10 голосов
/ 25 мая 2011

Какую версию Redis вы используете?У меня работает на 2.2.2, используя двойные кавычки

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> 
5 голосов
/ 14 января 2014

Если у вас есть только telnet (а не 'redis-cli'), то вам нужно использовать унифицированный протокол Redis для безопасной работы с двоичными данными, например:

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)

Подробнееинформация о бинарно-безопасном протоколе Redis: http://redis.io/topics/protocol

0 голосов
/ 18 октября 2013

получить "поле \ с \ пробелами"

, который работал для меня.

...