Module: TabsTabs::Storage

Extended by:
Storage
Included in:
TabsTabs, Metrics::Counter, Metrics::Task, Metrics::Task::Token, Metrics::Value, Storage
Defined in:
lib/tabs_tabs/storage.rb

Instance Method Summary collapse

Instance Method Details

#del(*keys) ⇒ Object



42
43
44
45
46
# File 'lib/tabs_tabs/storage.rb', line 42

def del(*keys)
  return 0 if keys.empty?
  prefixed_keys = keys.map { |k| tabs_key(k) }
  redis.del(*prefixed_keys)
end

#del_by_prefix(pattern) ⇒ Object



48
49
50
51
52
# File 'lib/tabs_tabs/storage.rb', line 48

def del_by_prefix(pattern)
  keys = redis.keys("#{tabs_key(pattern)}*")
  return 0 if keys.empty?
  redis.del(*keys)
end

#exists(key) ⇒ Object



17
18
19
# File 'lib/tabs_tabs/storage.rb', line 17

def exists(key)
  redis.exists(tabs_key(key))
end

#expireat(key, unix_timestamp) ⇒ Object



21
22
23
# File 'lib/tabs_tabs/storage.rb', line 21

def expireat(key, unix_timestamp)
  redis.expireat(tabs_key(key), unix_timestamp)
end

#get(key) ⇒ Object



29
30
31
# File 'lib/tabs_tabs/storage.rb', line 29

def get(key)
  redis.get(tabs_key(key))
end

#hdel(key, field) ⇒ Object



88
89
90
# File 'lib/tabs_tabs/storage.rb', line 88

def hdel(key, field)
  redis.hdel(tabs_key(key), field)
end

#hget(key, field) ⇒ Object



80
81
82
# File 'lib/tabs_tabs/storage.rb', line 80

def hget(key, field)
  redis.hget(tabs_key(key), field)
end

#hgetall(key) ⇒ Object



100
101
102
# File 'lib/tabs_tabs/storage.rb', line 100

def hgetall(key)
  redis.hgetall(tabs_key(key))
end

#hincrby(key, field, value) ⇒ Object



96
97
98
# File 'lib/tabs_tabs/storage.rb', line 96

def hincrby(key, field, value)
  redis.hincrby(tabs_key(key), field, value)
end

#hkeys(key) ⇒ Object



92
93
94
# File 'lib/tabs_tabs/storage.rb', line 92

def hkeys(key)
  redis.hkeys(tabs_key(key))
end

#hset(key, field, value) ⇒ Object



84
85
86
# File 'lib/tabs_tabs/storage.rb', line 84

def hset(key, field, value)
  redis.hset(tabs_key(key), field, value)
end

#incr(key) ⇒ Object



54
55
56
# File 'lib/tabs_tabs/storage.rb', line 54

def incr(key)
  redis.incr(tabs_key(key))
end

#mget(*keys) ⇒ Object



33
34
35
36
# File 'lib/tabs_tabs/storage.rb', line 33

def mget(*keys)
  prefixed_keys = keys.map { |k| tabs_key(k) }
  redis.mget(*prefixed_keys)
end

#redisObject



5
6
7
# File 'lib/tabs_tabs/storage.rb', line 5

def redis
  @redis ||= Config.redis
end

#rpush(key, value) ⇒ Object



58
59
60
# File 'lib/tabs_tabs/storage.rb', line 58

def rpush(key, value)
  redis.rpush(tabs_key(key), value)
end

#sadd(key, *values) ⇒ Object



62
63
64
# File 'lib/tabs_tabs/storage.rb', line 62

def sadd(key, *values)
  redis.sadd(tabs_key(key), *values)
end

#set(key, value) ⇒ Object



38
39
40
# File 'lib/tabs_tabs/storage.rb', line 38

def set(key, value)
  redis.set(tabs_key(key), value)
end

#sismember(key, value) ⇒ Object



76
77
78
# File 'lib/tabs_tabs/storage.rb', line 76

def sismember(key, value)
  redis.sismember(tabs_key(key), value)
end

#smembers(key) ⇒ Object



66
67
68
# File 'lib/tabs_tabs/storage.rb', line 66

def smembers(key)
  redis.smembers(tabs_key(key))
end

#smembers_all(*keys) ⇒ Object



70
71
72
73
74
# File 'lib/tabs_tabs/storage.rb', line 70

def smembers_all(*keys)
  redis.pipelined do
    keys.map{ |key| smembers(key)}
  end
end

#tabs_key(key) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/tabs_tabs/storage.rb', line 9

def tabs_key(key)
  if TabsTabs::Config.prefix.blank?
    "tabstabs:#{key}"
  else
    "tabstabs:#{TabsTabs::Config.prefix}:#{key}"
  end
end

#ttl(key) ⇒ Object



25
26
27
# File 'lib/tabs_tabs/storage.rb', line 25

def ttl(key)
  redis.ttl(tabs_key(key))
end