module Counter::Cache::Credis::InstanceMethods

Public Instance Methods

increase_counter(column = 'views_count') click to toggle source

增加

# 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') click to toggle source

减低

# 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