Redis组合关键属性

时间:2015-02-13 22:17:15

标签: redis

我正在尝试构建一个分析系统,我们需要从产品发送的记录数量的计数器。记录将包含产品名称,版本,运行平台以及其他相关信息。

稍后我们需要根据各种组合创建报告,例如产品,特定产品/版本,特定产品/平台,仅限平台等等。

因此,我认为拥有像下面的redis键是丑陋的,因为我们必须递增所有键组合

prod:ABC:ver:v1:plat:macos:record //all attributes, name, version ,platform
prod:ABC:record                   //only product name
prod:ABC:ver:v2:record            //name and version
...

有没有更好的方法来解决这个问题?

我是Redis的新手

1 个答案:

答案 0 :(得分:0)

你能做什么:

对于每个可能的记录信息,维护一个专用的redis集

  

"平台:fedora的" "产物:TOTO" "产物:TOTO:V2" ...

创建新记录时,请将其保存在具有唯一ID

的特定密钥中
  

"记录:323456"

将此ID推送到此记录的所有匹配集中,

  

" SADD平台:fedora 323456"

之后,使用redis sinter command在您的集合之间建立交集,具体取决于您的查询

  

" SINTER平台:fedora产品:toto"

捕获所有toto到fedora的用户