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'], object_class: nil)

def initialize(prefix:, url: ENV['REDIS_URL'], object_class: nil)
  super(prefix:)
  url or raise ArgumentError, 'require redis url'
  @url, @object_class = url, object_class
  @redis_cache  = Ollama::Documents::RedisCache.new(prefix:, url:, object_class:)
  @redis_cache.extend(Ollama::Documents::Cache::Records::RedisFullEach)
  @redis_cache.full_each do |key, value|
    @data[key] = value
  end
end

def redis

def redis
  @redis_cache.redis
end