我刚刚开始关注Redis并希望能够存储一系列哈希值,我可以在其中弹出随机键/值,然后在需要时将其重新输入。
所以在Ruby中我会有这样的东西
users = [{ username: "user1", password: "password"}, { username: "user2", password: 'password'}]
因此,如果我想从数组中获取一个随机键/值对象,我会做这样的事情
@user = users.shuffle!.pop
然后把它放回数组
users.push(@user)
使用Redis的想法是我有两个进程(基于Ruby的应用程序)需要同时共享一个用户池。一旦进程完成了用户,我希望它将其放回池中。
有人能指出我正确的方向吗
由于
答案 0 :(得分:7)
您可以Redis Hash存储用户信息,Redis Set将所有这些哈希存储在一起。
步骤:
HMSET userId_653 username "Tom" password "gd36e3hd38d3jdj3yd3hd38"
SADD users userId_653
的集合中添加此哈希。该集包含所有用户。srandom users
。它将返回 userId_653 HGET userId_653 username
spop userId_653
,然后在步骤4中处理后再次sadd
。更好理解的类似问题:Redis how to store associative array
参考文献:
PS:我没有Ruby的经验。寻找合适的Redis Ruby API来支持所有这些操作!