我正在尝试构建一个分析系统,我们需要从产品发送的记录数量的计数器。记录将包含产品名称,版本,运行平台以及其他相关信息。
稍后我们需要根据各种组合创建报告,例如产品,特定产品/版本,特定产品/平台,仅限平台等等。
因此,我认为拥有像下面的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的新手
答案 0 :(得分:0)
你能做什么:
对于每个可能的记录信息,维护一个专用的redis集
"平台:fedora的" "产物:TOTO" "产物:TOTO:V2" ...
创建新记录时,请将其保存在具有唯一ID
的特定密钥中"记录:323456"
将此ID推送到此记录的所有匹配集中,
" SADD平台:fedora 323456"
之后,使用redis sinter command在您的集合之间建立交集,具体取决于您的查询
" SINTER平台:fedora产品:toto"
捕获所有toto到fedora的用户