class Avocado::Redis::Strategy
Attributes
redis[R]
Public Class Methods
new(url = ENV['REDIS_URL'])
click to toggle source
# File lib/avocado/redis/strategy.rb, line 6 def initialize(url = ENV['REDIS_URL']) @redis = ::Redis.new url: url end
Public Instance Methods
purge_old(upload_id)
click to toggle source
# File lib/avocado/redis/strategy.rb, line 22 def purge_old(upload_id) old_keys = keys.reject { |key| key.end_with? upload_id } redis.del(*old_keys) if old_keys.any? end
read()
click to toggle source
# File lib/avocado/redis/strategy.rb, line 10 def read return [] if keys.empty? redis.mget(*keys).map do |value| JSON.parse value end end
write(data, upload_id)
click to toggle source
# File lib/avocado/redis/strategy.rb, line 17 def write(data, upload_id) key = "avocado-#{Time.current.to_s(:nsec)}-#{upload_id}" redis.set key, data.to_json end
Private Instance Methods
keys()
click to toggle source
# File lib/avocado/redis/strategy.rb, line 28 def keys redis.scan_each(match: 'avocado-*').to_a.uniq end