我应该如何在Redis中构建这个逻辑?

时间:2012-08-21 01:44:33

标签: ruby-on-rails ruby-on-rails-3 redis

我想跟踪用户在过去24小时内观看过视频的次数。我说"视频",因为用户可以观看多个视频。

这也意味着钥匙将在24小时后过期。认为我的钥匙应该是这样的:

users/1/videos/4/count/12

结构应包含用户ID,视频ID和计数。随意建议一个更好的密钥结构。

我在考虑使用set。或者我应该考虑更好的选择吗?也许一个清单?

1 个答案:

答案 0 :(得分:0)

为什么24小时后你会过关键?您只是从午夜到午夜还是从现在计算24小时的观看次数?在第二种情况下,密钥到期将是错误的,因为如果你在16:00查看结果,你只能得到最近16小时的结果,而不是你想要的结果。

我会使用密钥保存Stringsvideo:ID:user:ID:hour

示例:video:31245:user:15:16,其值为2

这表示身份标识为15的用户已在3124516:00 to 16:59内查看了ID为2的视频。

如果您想要24小时的结果,您可以获得当前小时并抓住前24小时的所有键,并总结值。

然后最后每个密钥都应在24小时后到期。

˙

希望这对你有所帮助! :)