Class: RerankerRuby::Cache::Redis

Inherits:
Object
  • Object
show all
Defined in:
lib/reranker_ruby/cache/redis.rb

Instance Method Summary collapse

Constructor Details

#initialize(redis:, ttl: 3600, prefix: "reranker:") ⇒ Redis

Returns a new instance of Redis.



8
9
10
11
12
# File 'lib/reranker_ruby/cache/redis.rb', line 8

def initialize(redis:, ttl: 3600, prefix: "reranker:")
  @redis = redis
  @ttl = ttl
  @prefix = prefix
end

Instance Method Details

#clear ⇒ Object



34
35
36
37
# File 'lib/reranker_ruby/cache/redis.rb', line 34

def clear
  keys = @redis.keys("#{@prefix}*")
  @redis.del(*keys) if keys.any?
end

#get(key) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/reranker_ruby/cache/redis.rb', line 14

def get(key)
  data = @redis.get("#{@prefix}#{key}")
  return nil unless data

  parsed = JSON.parse(data)
  parsed.map do |h|
    Result.new(
      text: h["text"],
      score: h["score"],
      index: h["index"],
      metadata: h["metadata"] || {}
    )
  end
end

#set(key, value) ⇒ Object



29
30
31
32
# File 'lib/reranker_ruby/cache/redis.rb', line 29

def set(key, value)
  serialized = JSON.generate(value.map(&:to_h))
  @redis.setex("#{@prefix}#{key}", @ttl, serialized)
end