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