class Sinatra::Cache::RedisStore
Public Class Methods
new(*addresses)
click to toggle source
Instantiate the store.
Example:
RedisStore.new # => host: localhost, port: 6379, db: 0 RedisStore.new "example.com" # => host: example.com, port: 6379, db: 0 RedisStore.new "example.com:23682" # => host: example.com, port: 23682, db: 0 RedisStore.new "example.com:23682/1" # => host: example.com, port: 23682, db: 1 RedisStore.new "example.com:23682/1/theplaylist" # => host: example.com, port: 23682, db: 1, namespace: theplaylist RedisStore.new "localhost:6379/0", "localhost:6380/0" # => instantiate a cluster
# File lib/sinatra/cache/redis_store.rb, line 31 def initialize(*addresses) @data = Redis::Store::Factory.create addresses end
Public Instance Methods
clear()
click to toggle source
Clear all the data from the store.
# File lib/sinatra/cache/redis_store.rb, line 122 def clear @data.flushdb end
decrement(key, amount = 1)
click to toggle source
Decrement a key in the store
If the key doesn't exist it will be initialized on 0. If the key exist but it isn't a Fixnum it will be initialized on 0.
Example:
We have two objects in cache: counter # => 23 rabbit # => #<Rabbit:0x5eee6c> cache.decrement "counter" cache.read "counter", :raw => true # => "22" cache.decrement "counter", 2 cache.read "counter", :raw => true # => "20" cache.decrement "a counter" cache.read "a counter", :raw => true # => "-1" cache.decrement "rabbit" cache.read "rabbit", :raw => true # => "-1"
# File lib/sinatra/cache/redis_store.rb, line 101 def decrement(key, amount = 1) @data.decrby key, amount end
delete(key, options = nil)
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 47 def delete(key, options = nil) @data.del key end
delete_matched(matcher, options = nil)
click to toggle source
Delete objects for matched keys.
Example:
cache.del_matched "rab*"
# File lib/sinatra/cache/redis_store.rb, line 109 def delete_matched(matcher, options = nil) @data.keys(matcher).each { |key| @data.del key } end
exist?(key, options = nil)
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 51 def exist?(key, options = nil) @data.exists key end
fetch(key, options = {}) { || ... }
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 113 def fetch(key, options = {}) (!options[:force] && data = read(key, options)) || block_given? && begin data = yield write(key, data, options) end data || nil end
increment(key, amount = 1)
click to toggle source
Increment a key in the store.
If the key doesn't exist it will be initialized on 0. If the key exist but it isn't a Fixnum it will be initialized on 0.
Example:
We have two objects in cache: counter # => 23 rabbit # => #<Rabbit:0x5eee6c> cache.increment "counter" cache.read "counter", :raw => true # => "24" cache.increment "counter", 6 cache.read "counter", :raw => true # => "30" cache.increment "a counter" cache.read "a counter", :raw => true # => "1" cache.increment "rabbit" cache.read "rabbit", :raw => true # => "1"
# File lib/sinatra/cache/redis_store.rb, line 76 def increment(key, amount = 1) @data.incrby key, amount end
read(key, options = nil)
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 43 def read(key, options = nil) @data.get(key, options) end
stats()
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 126 def stats @data.info end
write(key, value, options = nil)
click to toggle source
# File lib/sinatra/cache/redis_store.rb, line 35 def write(key, value, options = nil) if options && options[:unless_exist] @data.setnx key, value, options else @data.set key, value, options end end