2013-05-30 62 views
4

我正在尋找獲取和設置字符串數組的一些示例,而且我似乎無法找到一個或使其工作。在Redis中保存和檢索字符串數組

字符串本身是SecureRandom.hex值。把它們想象成邀請碼。我想創建一對鍵/值:

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

2)Key=> userid:invite:codes Value => 88bb4bdfef,73dbfac453,etc...(每個事先設定的一個條目)

我只是陷在管理值第二個鍵/值對。

UPDATE: 所以面臨的挑戰是,如果我創建一個數組,並設置它像這樣:

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

在這一點上foo的樣子: [ 「ABC」, 「DEF」]

所以我在Redis的設置foo,那麼檢索到條:

$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非常棒,但它需要一些工作來完成一些傳統的數據庫工作。這真的取決於你的用例。 –

相關問題