Memory management Redis中的数据建模
我正在构建一个系统,在Redis中实时跟踪许多计数器。每个计数器基本上是一个特定url上显示的广告关键字的印象、转换细节 例如,如果一个特定的url上显示了10个关键字,我需要更新这些关键字中每个关键字的印象和转换计数。在url的每个印象中,可能会显示一组不同的10个关键字 我需要的基本数据模型是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级哈希 解
- >url=>
k1=> 印象=>2 转换=>1 k2=>
印象=>100 转换=>8 . . k100(最大值约为100)
- url=>
k1印象=>100 k1转换=>3 .
. 诸如此类
任何帮助都将不胜感激。如果您的关键字长度足够长,您对此感到担忧,您应该对其进行规范化。将
关键字->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>