如何从两个或更多深度访问多个密钥中的数据而不循环

时间:2015-04-27 09:54:12

标签: redis

我正在使用redis从服务器获取数据。

我正在创建具有这样结构的跟随流

Sadd user_following_key user1_id, user2_id, user3_id
#data which i want to access is stored like this
zadd user1_id_key  data1
zadd user2_id_key data2 
#And data1 data2 ... are set which is stored like this
Set data1 some_data
set data2 some_data

我想访问data1 data2 ...和some_data而不运行循环over user_following_key返回数据,如果两个或多个键相同,那么只有一个应该来。

1 个答案:

答案 0 :(得分:1)

换句话说,对于user_id中的每个user_following_key,您希望访问相关的user_id密钥,从中检索data密钥名称,然后获取值data键。在这种情况下,您必须在此解除引用链中循环遍历user_following_key(以及每个多值键)的内容,并且每个深度/长度都有多个调用。

注意:在类似情况下,Lua可用于减少网络流量和延迟,但由于您实际上是以编程方式处理脚本中的密钥名称(ieg user_id1 ),它将使脚本在Redis集群和最佳实践方面不安全。