Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management Redis中的数据建模_Memory Management_Redis - Fatal编程技术网

Memory management Redis中的数据建模

Memory management Redis中的数据建模,memory-management,redis,Memory Management,Redis,我正在构建一个系统,在Redis中实时跟踪许多计数器。每个计数器基本上是一个特定url上显示的广告关键字的印象、转换细节 例如,如果一个特定的url上显示了10个关键字,我需要更新这些关键字中每个关键字的印象和转换计数。在url的每个印象中,可能会显示一组不同的10个关键字 我需要的基本数据模型是 >url=> k1=> 印象=>2 转换=>1 k2=> 印象=>100 转换=>8 . . k100(最大值约为100) 我知道Redis没有嵌套哈希,所以我不能像上面所示那样存储2级哈希 解

我正在构建一个系统,在Redis中实时跟踪许多计数器。每个计数器基本上是一个特定url上显示的广告关键字的印象、转换细节

例如,如果一个特定的url上显示了10个关键字,我需要更新这些关键字中每个关键字的印象和转换计数。在url的每个印象中,可能会显示一组不同的10个关键字

我需要的基本数据模型是

  • >url=>

    k1=>
    印象=>2
    转换=>1
    k2=>
    印象=>100 转换=>8 . . k100(最大值约为100)
我知道Redis没有嵌套哈希,所以我不能像上面所示那样存储2级哈希

解决这个问题的最好办法是什么

我想把k1印象和k1转换结合起来,使之成为一个单一的领域

我喜欢

  • url=>

    k1印象=>100
    k1转换=>3
    .
    . 诸如此类
但是问题是'k1','k2'等的长度很重要(120-150字节),如果可能的话,我不想复制这些数据来节省内存

我该如何着手解决这个问题


任何帮助都将不胜感激。

如果您的关键字长度足够长,您对此感到担忧,您应该对其进行规范化。将
关键字->id
关键字->id
进行散列,用于编码和解码。然后您可以使用
url=>{kw\u id:impressions=>1123,kw\u id:conversions=>28}
格式的每个url哈希。当您开始需要为关键字编制索引时,这也会很好地为您服务。例如,当您需要在所有URL中显示前10个性能最佳的关键字时,您会立即创建索引。

谢谢标记。但这是为我的数据建模的最佳方式吗?我可以使用其他(集合、列表等)中的任何一个来更有效地完成它吗?我只是从Redis开始,任何帮助都将不胜感激。再次感谢!什么情况下最好?你在问题中提到的唯一问题是没有复制我设计的关键词文本。具体取决于您要做什么,所有redis数据类型都很有用,您只需要为工作选择正确的工具。每个redis命令都会在文档中列出其复杂性类。考虑一下您的查询模式,看看实现这些查询所需的redis命令的复杂性。然后,只需选择将复杂性降至最低的结构。
 k1 =>
        impression => 2
        conversion => 1
 k2 =><br>
        impression => 100
        conversion => 8
 .
 .
 k100 (max around 100)</li>
   k1-impression => 100
   k1-conversion => 3
   .<br>
   . so on</li>