Class: Frivol::Backend::Redis

Inherits:
Object
  • Object
show all
Defined in:
lib/frivol/backend/redis.rb

Overview

Configuration

This is a connection to a single Redis server and the simplest backend.

REDIS_CONFIG = {
  :host => "localhost",
  :port => 6379
}
Frivol::Config.backend = Frivol::Backend::Redis.new(REDIS_CONFIG)

Direct Known Subclasses

RedisDistributed

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Redis

:nodoc:



14
15
16
# File 'lib/frivol/backend/redis.rb', line 14

def initialize(config)
  @config = config
end

Instance Method Details

#connectionObject



71
72
73
# File 'lib/frivol/backend/redis.rb', line 71

def connection
  Thread.current[thread_key] ||= ::Redis.new(@config)
end

#decr(key, expiry = Frivol::NEVER_EXPIRE) ⇒ Object



44
45
46
# File 'lib/frivol/backend/redis.rb', line 44

def decr(key, expiry = Frivol::NEVER_EXPIRE)
  set_with_expiry(key, 1, expiry, :decrby)
end

#decrby(key, amt, expiry = Frivol::NEVER_EXPIRE) ⇒ Object



52
53
54
# File 'lib/frivol/backend/redis.rb', line 52

def decrby(key, amt, expiry = Frivol::NEVER_EXPIRE)
  set_with_expiry(key, amt, expiry, :decrby)
end

#del(key) ⇒ Object Also known as: delc



29
30
31
# File 'lib/frivol/backend/redis.rb', line 29

def del(key)
  connection.del(key)
end

#exists(key) ⇒ Object Also known as: existsc



34
35
36
# File 'lib/frivol/backend/redis.rb', line 34

def exists(key)
  connection.exists(key)
end

#expire(key, ttl) ⇒ Object

Expiry/TTL



57
58
59
# File 'lib/frivol/backend/redis.rb', line 57

def expire(key, ttl)
  connection.expire(key, ttl)
end

#flushdbObject

Connection



67
68
69
# File 'lib/frivol/backend/redis.rb', line 67

def flushdb
  connection.flushdb
end

#get(key, expiry = Frivol::NEVER_EXPIRE) ⇒ Object Also known as: getc

Hashes



19
20
21
# File 'lib/frivol/backend/redis.rb', line 19

def get(key, expiry = Frivol::NEVER_EXPIRE)
  connection.get(key)
end

#incr(key, expiry = Frivol::NEVER_EXPIRE) ⇒ Object

Counters



40
41
42
# File 'lib/frivol/backend/redis.rb', line 40

def incr(key, expiry = Frivol::NEVER_EXPIRE)
  set_with_expiry(key, 1, expiry, :incrby)
end

#incrby(key, amt, expiry = Frivol::NEVER_EXPIRE) ⇒ Object



48
49
50
# File 'lib/frivol/backend/redis.rb', line 48

def incrby(key, amt, expiry = Frivol::NEVER_EXPIRE)
  set_with_expiry(key, amt, expiry, :incrby)
end

#set(key, val, expiry = Frivol::NEVER_EXPIRE) ⇒ Object Also known as: setc



24
25
26
# File 'lib/frivol/backend/redis.rb', line 24

def set(key, val, expiry = Frivol::NEVER_EXPIRE)
  set_with_expiry(key, val, expiry)
end

#ttl(key) ⇒ Object



61
62
63
64
# File 'lib/frivol/backend/redis.rb', line 61

def ttl(key)
  time = connection.ttl(key)
  time < 0 ? nil : time
end