我有一个经常访问的网页,其中我有大约60-80个标签的ID,并希望从Redis获取有关这些项目的信息。
标签有一个名称,一个'has_children'标志,以及两个或三个需要访问的其他属性。
有两种方法可以想到:
为每个标记存储哈希值。
tag:123 --> {name: 'Football', has_children: True, ...}
tag:345 --> {name: 'Cricket', has_children: False, ...}
然后我将迭代那些~80个标签ID并为每个标签ID进行HGETALL调用。流水线将用于不浪费往返时间。
另一种方法是为标记的每个属性设置一个哈希值。
tag_name --> {'tag:123': 'Football', 'tag:345': 'Cricket', ...}
tag_has_children --> {'tag:123': True, 'tag:345': False, ...}
在这种方法中,我会做出与我需要的属性一样多的HMGET调用。例如。
HMGET tag_name tag:123 tag:345 ...
HMGET tag_has_children tag:123 tag:345 ...
通话次数从~80减少到3或4。
后一种方法是否会提高速度?或者由于Redis的工作方式或其他原因,它没有任何区别?或者有更好的方法来做我想要的事情吗?