How to store array of hashes in redis

XMen picture XMen · Jun 8, 2011 · Viewed 13.5k times · Source

I want to store array of hashes in redis , what is best way to code it ?

Answer

Seldaek picture Seldaek · Jun 8, 2011

The only way AFAIK is to de-reference them. Say you have an array of 2 hashes like: {foo: 'bar', baz: 'qux'}.

You'd store them separately, and then create a SET that references them all:

HMSET myarr:0 foo bar baz qux
SADD myarr myarr:0
HMSET myarr:1 foo bar baz qux
SADD myarr myarr:1

Then you can retrieve them all by querying the set: SMEMBERS myarr and then call HGETALL <key> on all the returned keys to rebuild your original array of hashes.

I hope this makes sense. And if you find a smarter way I'd be happy to hear it.