Redis:具有一些正则表达式的键的总和

时间:2014-12-07 20:47:01

标签: ruby-on-rails ruby redis

我正在尝试使用Redis按照本教程在我的rails应用程序中实现一个页面View Counter - > http://codemy.net/posts/analytics-with-redis-part-3

在本教程中,按键添加如下:

$ redis.incr"统计数据:#{Date.today.year}:#{Date.today.month}:#{Date.today.day}:post:#{@ post.id}:视图"

现在,如果我想获得特定帖子ID的总观看次数,有哪些选项?

一种天真的方式是先获得所有密钥:

密钥统计:*:发布:1:观看 然后迭代这些键以获取值并添加它们。

我很确定会有一些Redis方法来执行此操作或在此类用例中使用任何其他ds。有人可以帮助我,我是Redis的初学者吗?

1 个答案:

答案 0 :(得分:2)

因此,在Redis中执行此类操作的最简单,最好的方法是为要跟踪的统计细分保留专用计数器。因此,例如,如果您想要跟踪今天的视图和所有时间视图,您可能会有两个增量:

d = Date.today
$redis.incr "Stats:#{d.year}:#{d.month}:#{d.day}:post:#{@post.id}:views"
$redis.incr "Stats:alltime:post:#{@post.id}:views"

然后,您只需查询第二个键即可获得所有时间聚合。