2014-08-18 2 views
0

Я использую redis с ruby, и я бы хотел, чтобы redis создал хэш, в котором значение представляет собой массив. Тем не менее, массив представляет собой значение для ключа, которое является значением для другого ключа (вкратце - хеш в другом хеше).Установка массива как значения хэша в Redis

arr = ["this", "is", "an", "array"] 
r = Redis.new 
r.hset("super_key", "key", arr) 

, который дает мне ошибку: ERR wrong number of arguments for 'hset' command.

Я бы ожидать, что хэш выглядеть примерно так:

{ "super_key" => { "key" => ["this", "is", "an", "array"] } } 

Так что было бы правильным способом выполнения этого действия?

ответ

0

Не уверен, что это то, что делает этот метод сердитым, но похоже, что вы используете его таким образом, который он не позволяет. Из the Redis gem documentation:

Redis only stores strings as values. If you want to store an object, you can use a serialization mechanism such as JSON...

Так что попробуйте хранить array.to_json и использовать JSON.parse(obj), чтобы получить его обратно.

+0

Спасибо! Это сработало :) – Udo

Смежные вопросы