Class: VisitCounter::Store::RedisStore

Inherits:
AbstractStore
  • Object
show all
Defined in:
lib/visit_counter_updater/store/redis_store.rb

Class Method Summary collapse

Class Method Details

.del(key) ⇒ Object



14
15
16
# File 'lib/visit_counter_updater/store/redis_store.rb', line 14

def del(key)
  redis.del(key)
end

.get_all_by_range(sorted_set_key, min, max) ⇒ Object

Usage: to get all post#num_reads counters in the last hour, do: redis.zrangebyscore(“visit-counter::Post::num_reads”, (Time.now - 3600).to_i, Time.now.to_i)



29
30
31
# File 'lib/visit_counter_updater/store/redis_store.rb', line 29

def get_all_by_range(sorted_set_key, min, max)
  redis.zrangebyscore(sorted_set_key, min, max)
end

.incr(key, timestamp, set_name) ⇒ Object

adding keys to sorted sets, to allow searching by timstamp(score). subsequent hits to the same key will only update the timestamp (and won’t duplicate).



9
10
11
12
# File 'lib/visit_counter_updater/store/redis_store.rb', line 9

def incr(key, timestamp, set_name)
  redis.zadd(set_name, timestamp, key)
  redis.incr(key).to_i
end

.mget(keys) ⇒ Object



18
19
20
# File 'lib/visit_counter_updater/store/redis_store.rb', line 18

def mget(keys)
  redis.mget(*keys).map(&:to_i)
end

.mnullify(keys) ⇒ Object



22
23
24
25
# File 'lib/visit_counter_updater/store/redis_store.rb', line 22

def mnullify(keys)
  keys_with_0 = keys.flat_map {|k| [k,"0"]}
  redis.mset(*keys_with_0)
end