我有一个结构。
data_type:key1 - hash
data_type:key2 - hash
data_type:key3 - hash
data_type:key4 - hash
data_type:key5 - hash
data_type:index - set(key1, key2, key3, key4, key5)
在Redis中,你可以用Lua编写一个脚本来遍历数据类型为set的index,并将所有 data_type:key* 返回为散列列表。我正在学习Lua,在我的想法中,它应该类似于:
collect = []
for key_name in redis.call.smemembers('data_type:index'):
collect.append( redis.call.smembers('data_type:' + key_name)
return collect
通常情况下,大多数索引都有约100个键,每个键大约为1KB。因此,在理想情况下,此脚本的响应大小为100-120KB。
在有人问之前,真正的键看起来像'some_data:status:{64 bit hex string}'和'some_data:index:2013:05:09',其中{64 bit hex string}是:index集合的成员之一。