Class: CacheMachine::Adapters::Redis
- Inherits:
-
CacheMachine::Adapter
- Object
- CacheMachine::Adapter
- CacheMachine::Adapters::Redis
- Defined in:
- lib/cache_machine/adapters/redis.rb
Instance Attribute Summary collapse
-
#redis ⇒ Object
Returns the value of attribute redis.
Instance Method Summary collapse
- #append_id_to_map(target, association, id) ⇒ Object
- #append_id_to_reverse_map(resource, association, target, id) ⇒ Object
- #association_ids(target, association) ⇒ Object
- #delete(key) ⇒ Object
- #delete_content(key) ⇒ Object
- #fetch(key, options = {}, &block) ⇒ Object
- #fetch_timestamp(name, options = {}, &block) ⇒ Object
-
#initialize(*options) ⇒ Redis
constructor
A new instance of Redis.
- #reset_timestamp(name) ⇒ Object
- #reverse_association_ids(resource, association, target) ⇒ Object
- #write_timestamp(name, options = {}, &block) ⇒ Object
Constructor Details
#initialize(*options) ⇒ Redis
Returns a new instance of Redis.
8 9 10 11 |
# File 'lib/cache_machine/adapters/redis.rb', line 8 def initialize(*) @redis = ::Redis.new(*) CacheMachine::Logger.info "CACHE_MACHINE: initialized Redis adapter" end |
Instance Attribute Details
#redis ⇒ Object
Returns the value of attribute redis.
6 7 8 |
# File 'lib/cache_machine/adapters/redis.rb', line 6 def redis @redis end |
Instance Method Details
#append_id_to_map(target, association, id) ⇒ Object
13 14 15 |
# File 'lib/cache_machine/adapters/redis.rb', line 13 def append_id_to_map(target, association, id) @redis.sadd(get_map_key(target, association), id) end |
#append_id_to_reverse_map(resource, association, target, id) ⇒ Object
17 18 19 |
# File 'lib/cache_machine/adapters/redis.rb', line 17 def append_id_to_reverse_map(resource, association, target, id) @redis.sadd(get_reverse_map_key(resource, association, target), id) end |
#association_ids(target, association) ⇒ Object
21 22 23 |
# File 'lib/cache_machine/adapters/redis.rb', line 21 def association_ids(target, association) get_ids(get_map_key(target, association)) { target.association_ids(association) } end |
#delete(key) ⇒ Object
25 26 27 |
# File 'lib/cache_machine/adapters/redis.rb', line 25 def delete(key) @redis.del(key).to_i > 0 end |
#delete_content(key) ⇒ Object
29 30 31 |
# File 'lib/cache_machine/adapters/redis.rb', line 29 def delete_content(key) delete(get_content_key(key)) end |
#fetch(key, options = {}, &block) ⇒ Object
33 34 35 36 |
# File 'lib/cache_machine/adapters/redis.rb', line 33 def fetch(key, = {}, &block) key = get_content_key(key) block_given? ? exec_multi_command(:setnx, key, , &block) : @redis.get(key) end |
#fetch_timestamp(name, options = {}, &block) ⇒ Object
38 39 40 |
# File 'lib/cache_machine/adapters/redis.rb', line 38 def (name, = {}, &block) exec_multi_command(:setnx, (name), , &block) end |
#reset_timestamp(name) ⇒ Object
42 43 44 |
# File 'lib/cache_machine/adapters/redis.rb', line 42 def (name) @redis.del((name)) end |
#reverse_association_ids(resource, association, target) ⇒ Object
46 47 48 |
# File 'lib/cache_machine/adapters/redis.rb', line 46 def reverse_association_ids(resource, association, target) get_ids(get_reverse_map_key(resource, association, target)) { target.cache_map_ids(resource, association) } end |
#write_timestamp(name, options = {}, &block) ⇒ Object
50 51 52 |
# File 'lib/cache_machine/adapters/redis.rb', line 50 def (name, = {}, &block) exec_multi_command(:set, (name), , &block) end |