0

我正在构建一个在 Redis 中实时跟踪许多计数器的系统。每个计数器基本上是特定网址上显示的广告关键字的展示次数和转化详细信息。

IE。如果在特定网址上显示 10 个关键字,我需要更新每个关键字的展示次数和转化次数。并且在每次展示 url 时,可能会显示一组不同的 10 个关键字。

IE。我需要的基本数据模型类似于

  • > 网址=>

     k1 =>
            impression => 2
            conversion => 1
     k2 =><br>
            impression => 100
            conversion => 8
     .
     .
     k100 (max around 100)</li>
    

我了解 Redis 没有嵌套哈希,因此我无法存储 2 级哈希,如上所示。

解决此问题的最佳方法是什么?

我想过将 k1-impression 和 k1 转换结合起来,让它成为一个单一的领域

即喜欢

  • 网址 =>

       k1-impression => 100
       k1-conversion => 3
       .<br>
       . so on</li>
    

但问题是“k1”、“k2”等的长度很重要(120-150 字节),如果可能的话,我不想复制这些数据以节省内存。

我将如何解决这个问题?

任何帮助将不胜感激。

4

1 回答 1

1

如果您的关键字足够长以至于您担心它,您应该将它们标准化。制作 的散列keyword -> id和 的散列id -> keyword,用于对它们进行编码和解码。然后,您可以拥有表单的每个 url 散列url => {kw_id:impressions => 1123, kw_id:conversions => 28}。当您开始需要为关键字创建索引时,这也将为您提供很好的服务,例如,一旦您要求在所有 url 中显示前 10 个表现最佳的关键字,您就会立即这样做。

于 2012-09-19T21:11:25.727 回答