Method: ActiveSupport::Cache::Store#read
- Defined in:
- lib/active_support/cache.rb
#read(name, options = nil) ⇒ Object
Reads data from the cache, using the given key. If there is data in the cache with the given key, then that data is returned. Otherwise, nil is returned.
Note, if data was written with the :expires_in or :version options, both of these conditions are applied before the data is returned.
Options
-
:namespace- Replace the store namespace for this call. -
:version- Specifies a version for the cache entry. If the cached version does not match the requested version, the read will be treated as a cache miss. This feature is used to support recyclable cache keys.
Other options will be handled by the specific cache store implementation.
506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 |
# File 'lib/active_support/cache.rb', line 506 def read(name, = nil) = () key = normalize_key(name, ) version = normalize_version(name, ) instrument(:read, key, ) do |payload| entry = read_entry(key, **, event: payload) if entry if entry.expired? delete_entry(key, **) payload[:hit] = false if payload nil elsif entry.mismatched?(version) payload[:hit] = false if payload nil else payload[:hit] = true if payload begin entry.value rescue DeserializationError payload[:hit] = false nil end end else payload[:hit] = false if payload nil end end end |