Module: Counter::Cache::Credis::InstanceMethods

Defined in:
lib/counter/cache/credis/counter.rb

Instance Method Summary collapse

Instance Method Details

#update_counterObject

修改值



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/counter/cache/credis/counter.rb', line 32

def update_counter
  redis = RedisCli.new
  # 先读出redis中的值
  views_count_redis = redis.get("#{self.class.table_name}/#{self.id}").to_i
  views_count_redis = 0 if !views_count_redis
  views_count_redis += 1

  if views_count_redis >= self.counter_delay
    # 计算出总读数
    views_count_temp = views_count_redis + (self.send(self.column) || 0)
    views_count_redis = 0
    self.send("#{self.column}=", views_count_temp)
    self.save
  end

  redis.set("#{self.class.table_name}/#{self.id}", views_count_redis)

end