2013-05-30 2 views
4

Я ищу некоторые примеры получения и установки массивов строк, и я не могу найти его или заставить его работать.Сохранение и извлечение массива строк в Redis

Эти строки являются значениями SecureRandom.hex. Думайте о них, как о кодах приглашения. Я хочу, чтобы создать пару ключ/значение:

Key=> invite:code:88bb4bdfef Value=> userid 1)

2) Key=> userid:invite:codes Value => 88bb4bdfef,73dbfac453,etc... (одна запись для каждого из предыдущего набора)

Я просто застревание на управлении значения вторая пара ключей/значений.

UPDATE: Поэтому задача состоит в том, что если я создаю массив и установить его следующим образом:

foo=Array.new 
foo.push("abc") 
foo.push("def") 

в этот момент Foo выглядит как: [ "ABC", "DEF"]

Поэтому я Foo в Redis, то получить его в бар:

$redis.set(:foo,foo) 
bar=$redis.get(:foo) 

Теперь бар выглядит следующим образом: "[\" abc \ ", \" def \ "]"

+0

Попробуйте сделать это вручную сначала с помощью нескольких команд redis-cli ... это не выглядит так тяжело. –

+0

Я сделал, посмотрю обновление. Я не могу (по незнанию, скорее всего) конвертировать эту результирующую строку обратно и массив строк. – Webjedi

+0

вы можете JSON закодировать массив перед сохранением, если вы не хотите использовать списки, поскольку @Chris Heald предложил – akonsu

ответ

7

Вы хотите, чтобы здесь были списки или наборы, а не простые ключи. Вот пример использования функции набора Redis:

$redis.sadd("userid:invite:codes", ["88bb4bdfef", "73dbfac453"]) 
$redis.smembers("userid:invite:codes") 
=> ["88bb4bdfef", "73dbfac453"] 
+0

Работал отлично! Спасибо. – Webjedi

+0

Связанный вопрос ... это тот факт, что мне нужно установить два набора ключей, чтобы управлять этим процессом значком, который я не должен использовать redis для этого? – Webjedi

+0

Не обязательно. Redis замечательный, но для выполнения некоторых традиционных вещей с базами данных требуется немного времени. Это действительно зависит от вашего прецедента. –

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