Redis中哪两种方法更快? (HGETALL与HMGET相关)

时间:2014-07-23 12:11:25

标签: optimization redis

我有一个经常访问的网页,其中我有大约60-80个标签的ID,并希望从Redis获取有关这些项目的信息。

标签有一个名称,一个'has_children'标志,以及两个或三个需要访问的其他属性。

有两种方法可以想到:

  1. 为每个标记存储哈希值。

    tag:123 --> {name: 'Football', has_children: True, ...}
    tag:345 --> {name: 'Cricket', has_children: False, ...}
    

    然后我将迭代那些~80个标签ID并为每个标签ID进行HGETALL调用。流水线将用于不浪费往返时间。

  2. 另一种方法是为标记的每个属性设置一个哈希值。

    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 ...
    
  3. 通话次数从~80减少到3或4。

    后一种方法是否会提高速度?或者由于Redis的工作方式或其他原因,它没有任何区别?或者有更好的方法来做我想要的事情吗?

0 个答案:

没有答案