2013-05-30 33 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非常棒,但它需要一些工作来完成一些传统的数据库工作。这真的取决于你的用例。 –

相关问题