class Marfa::Cache

Redis-cache wrapper

Public Class Methods

new() click to toggle source
# File lib/marfa/cache.rb, line 7
def initialize
  @config = Marfa.config.cache
  @redis = Redis.new(host: @config[:host], port: @config[:port], db: @config[:db])
end

Public Instance Methods

delete(key) click to toggle source

Delete data from cache @param key [String] cache key @example

Marfa.cache.delete('key')
# File lib/marfa/cache.rb, line 50
def delete(key)
  @redis.del(key)
end
delete_by_pattern(pattern) click to toggle source

Delete data from cache by pattern @param pattern [String] pattern @example

Marfa.cache.delete_by_pattern('pattern')
# File lib/marfa/cache.rb, line 58
def delete_by_pattern(pattern)
  keys = @redis.keys("*#{pattern}*")
  @redis.del(*keys) unless keys.empty?
end
exist?(key) click to toggle source

Check that key exist in cache @param key [String] ключ @example

Marfa.cache.exist?('key')

@return [Boolean]

# File lib/marfa/cache.rb, line 41
def exist?(key)
  return unless @config[:enabled]
  @redis.exists(key)
end
get(key) click to toggle source

Get data from cache @param key [String] cache key @example

Marfa.cache.get('key')

@return [String] data from cache @return [Nil]

# File lib/marfa/cache.rb, line 32
def get(key)
  @redis.get(key)
end
set(key, value, time = nil) click to toggle source

Write data to cache @example

Marfa.cache.set('key', 'value', 7200)
# File lib/marfa/cache.rb, line 15
def set(key, value, time = nil)
  return unless @config[:enabled]
  return if time.zero?

  if time.is_a? Numeric
    @redis.set(key, value, ex: time) # ex - is seconds
  else
    @redis.set(key, value) #infinite
  end
end