Class: RemoteResource::Storage::Redis
- Inherits:
-
Object
- Object
- RemoteResource::Storage::Redis
- Defined in:
- lib/remote_resource/storage/redis.rb
Instance Method Summary collapse
-
#initialize(redis, options = {}) ⇒ Redis
constructor
A new instance of Redis.
- #read_key(key) ⇒ Object
- #write_key(storage_key, storage_entry) ⇒ Object
Constructor Details
#initialize(redis, options = {}) ⇒ Redis
Returns a new instance of Redis.
9 10 11 12 13 14 15 16 |
# File 'lib/remote_resource/storage/redis.rb', line 9 def initialize(redis, = {}) @redis = redis = .reverse_merge( serializer: Serializers::MarshalSerializer.new, expires_in: 1 * (60 * 60 * 24) ) @serializer = [:serializer] end |
Instance Method Details
#read_key(key) ⇒ Object
18 19 20 21 22 |
# File 'lib/remote_resource/storage/redis.rb', line 18 def read_key(key) redis_value = @redis.hgetall key StorageEntry.new @serializer.load(redis_value['headers']), @serializer.load(redis_value['data']) end |
#write_key(storage_key, storage_entry) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/remote_resource/storage/redis.rb', line 24 def write_key(storage_key, storage_entry) write_args = [] storage_entry.to_hash.each_pair do |key, value| write_args.concat([key, @serializer.dump(value)]) unless value.empty? end @redis.multi do |multi| multi.hmset storage_key, *write_args multi.expire storage_key, [:expires_in] end end |