I have just started to look at Redis and would like to be able to store an Array of hashes, where I can pop a random key/value out and then put it back in when I need to.
So in Ruby I would have something like this
users = [{ username: "user1", password: "password"}, { username: "user2", password: 'password'}]
So if I wanted to get a random key/value object from the Array I would do something like this
@user = users.shuffle!.pop
And then to put it back into the array
users.push(@user)
The idea for using Redis is that I have two processes (Ruby based app) that need to share a pool of users at the same time. Once a process has finished with a user I want it to put it back into the pool.
What can I try next?
You could Redis Hash to store a user info and Redis Set to store all these hashes together.
Steps:
HMSET userId_653 username "Tom" password "gd36e3hd38d3jdj3yd3hd38"
SADD users userId_653
. This set contains all the users.SRANDMEMBER users
. It will return userId_653HGET userId_653 username
SPOP users
after step 3. and SADD
again after processing in step 4.A similar question for better understanding: Redis how to store associative array
References:
PS: I have no experience in Ruby. Look for suitable Redis Ruby API which would support all these operations!