新手问题 如何实现 hit counter 功能

cameo · 2013年07月09日 · 最后由 cameo 回复于 2013年07月11日 · 3122 次阅读

请教如何能实现 Model,比如 blog,article 的 hit counter 功能,用的是 Mongoid。有没有适合的 gem 之类的?

我看 Ruby China 的源代码里 Topic.rb 中有一行 counter :hits

然后 TopicsController 中 show action 有一行 @topic.hits.incr(1)

counter method 与 incr method 都是哪儿来的?Ruby China 能实现 unique count by request 么?

谢谢!

木人回答?

#2 楼 @Rei 你说的好像是实现 cache 一个 topic 有多少个 post,好像不是我问的如何实现一个 topic 被浏览了的多少次。 用 inc 没问题,可如何实现 unique counter by request?

#3 楼 @cameo 奥,我搞错了,counter 是这个 https://github.com/nateware/redis-objects

unique 是指针对哪个条件?

#4 楼 @Rei 谢谢指点,看到了!但是对 redis 不是很了解,貌似很有用,但是有没有简单一点的 gem? 我想的是比如针对 ip unique

#5 楼 @cameo 简单实现可以用 mongodb 的 addToSet,mongoid 的 add_to_set,把 ip 存进去,然后计算数组长度。数据大了再做优化。

#6 楼 @Rei 谢谢指点!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号