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

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

Instance Method Summary collapse

Instance Method Details

#increase_counter(column = 'views_count') ⇒ Object

增加



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

def increase_counter(column = 'views_count')
  redis = RedisCli.new
  counter_redis = redis.get("#{self.class.table_name}/#{column}#{self.id}").to_i
  counter_redis = 0 if !counter_redis
  counter_redis += 1
  if counter_redis >= column_delay[column]
    # 计算出总读数
    views_count_temp = counter_redis + (self.send(column) || 0)
    counter_redis = 0
    self.send("#{column}=", views_count_temp)
    self.save
  end

  redis.set("#{self.class.table_name}/#{column}#{self.id}", counter_redis)
end

#reduce_counter(column = 'views_count') ⇒ Object

减低



51
52
53
54
55
56
57
# File 'lib/counter/cache/credis/counter.rb', line 51

def reduce_counter(column = 'views_count')
  redis = RedisCli.new
  counter_redis = redis.get("#{self.class.table_name}/#{column}#{self.id}").to_i
  counter_redis = 0 if !counter_redis
  counter_redis -= 1
  redis.set("#{self.class.table_name}/#{column}#{self.id}", counter_redis)
end