class Ollama::Documents::RedisBackedMemoryCache
def []=(key, value)
def []=(key, value) super redis.set(pre(key), JSON(value)) end
def clear
def clear redis.scan_each(match: "#@prefix*") { |key| redis.del(key) } super self end
def delete(key)
def delete(key) result = redis.del(pre(key)) super result end
def initialize(prefix:, url: ENV['REDIS_URL'])
def initialize(prefix:, url: ENV['REDIS_URL']) super(prefix:) url or raise ArgumentError, 'require redis url' @prefix, @url = prefix, url @redis_cache = Ollama::Documents::RedisCache.new(prefix:, url:) @redis_cache.full_each do |key, value| @data[key] = value end end
def pre(key)
def pre(key) [ @prefix, key ].join end
def redis
def redis @redis_cache.redis end
def unpre(key)
def unpre(key) key.sub(/\A#@prefix/, '') end