浏览数实践
我们分析一下,浏览数更新很频繁,那么使用传统的关系型数据库并不合适。
那么使用 Memcached 呢?也不太合适,有 2 点,一是 Memcached 没有原子性的增量 increment 能力,二是数据持久化的问题。
综上所述,Redis 是最好的选择。
添加 gem
gem 'redis', '~> 4.0'
在 config 中新建文件 redis.rb
require "redis"
$redis = Redis.new(host: 'localhost', port: 6379)
在对应的 Modle 中添加方法
def up_hits
$redis.hincrby(key, "hits", 1)
end
def hits
$redis.hget(key, "hits").to_i
end
def key
"#{self.class.name.downcase}_#{id}"
end
在对应的 Controller 中使用
@example.up_hits
在对应的 View 中使用
@example.hits