Class: GraphQL::PersistedQueries::StoreAdapters::RedisWithLocalCacheStoreAdapter
- Inherits:
-
BaseStoreAdapter
- Object
- BaseStoreAdapter
- GraphQL::PersistedQueries::StoreAdapters::RedisWithLocalCacheStoreAdapter
- Defined in:
- lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb
Overview
Memory adapter for storing persisted queries
Constant Summary collapse
- DEFAULT_REDIS_ADAPTER_CLASS =
RedisStoreAdapter- DEFAULT_MEMORY_ADAPTER_CLASS =
MemoryStoreAdapter
Instance Attribute Summary
Attributes inherited from BaseStoreAdapter
Instance Method Summary collapse
- #fetch(hash) ⇒ Object
-
#initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil, memory_adapter_class: nil) ⇒ RedisWithLocalCacheStoreAdapter
constructor
A new instance of RedisWithLocalCacheStoreAdapter.
- #save(hash, query) ⇒ Object
Methods inherited from BaseStoreAdapter
#fetch_query, #save_query, #trace
Constructor Details
#initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil, memory_adapter_class: nil) ⇒ RedisWithLocalCacheStoreAdapter
Returns a new instance of RedisWithLocalCacheStoreAdapter.
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb', line 11 def initialize(redis_client: {}, expiration: nil, namespace: nil, redis_adapter_class: nil, memory_adapter_class: nil) redis_adapter_class ||= DEFAULT_REDIS_ADAPTER_CLASS memory_adapter_class ||= DEFAULT_MEMORY_ADAPTER_CLASS @redis_adapter = redis_adapter_class.new( redis_client: redis_client, expiration: expiration, namespace: namespace ) @memory_adapter = memory_adapter_class.new @name = :redis_with_local_cache end |
Instance Method Details
#fetch(hash) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb', line 25 def fetch(hash) result = @memory_adapter.fetch(hash) result ||= begin inner_result = @redis_adapter.fetch(hash) @memory_adapter.save(hash, inner_result) if inner_result inner_result end result end |
#save(hash, query) ⇒ Object
35 36 37 38 |
# File 'lib/graphql/persisted_queries/store_adapters/redis_with_local_cache_store_adapter.rb', line 35 def save(hash, query) @redis_adapter.save(hash, query) @memory_adapter.save(hash, query) end |