Websites/app/logical/cache.rb

35 lines
874 B
Ruby
Raw Normal View History

2024-05-03 03:04:43 +00:00
# frozen_string_literal: true
class Cache
def self.read_multi(keys, prefix)
sanitized_key_to_key_hash = keys.index_by { |key| "#{prefix}:#{key}" }
sanitized_keys = sanitized_key_to_key_hash.keys
sanitized_key_to_value_hash = Rails.cache.read_multi(*sanitized_keys)
sanitized_key_to_value_hash.transform_keys(&sanitized_key_to_key_hash)
end
def self.fetch(key, expires_in: nil, &)
Rails.cache.fetch(key, expires_in: expires_in, &)
end
def self.write(key, value, expires_in: nil)
Rails.cache.write(key, value, expires_in: expires_in)
end
def self.delete(key)
Rails.cache.delete(key)
end
def self.clear
Rails.cache.clear
end
def self.redis
# Using a shared variable like this here is OK
# since unicorn spawns a new process for each worker
@redis ||= Redis.new(url: Websites.config.redis_url)
end
end