instance method
write_entry
Ruby on Rails 6.0.6
Since v5.2.8.1 PrivateSignature
write_entry(key, entry, unless_exist: false, raw: false, expires_in: nil, race_condition_ttl: nil, **options)
Write an entry to the cache.
Requires Redis 2.6.12+ for extended SET options.
Parameters
-
keyreq -
entryreq -
unless_existkey = false -
rawkey = false -
expires_inkey = nil -
race_condition_ttlkey = nil -
optionskeyrest
Source
# File activesupport/lib/active_support/cache/redis_cache_store.rb, line 381
def write_entry(key, entry, unless_exist: false, raw: false, expires_in: nil, race_condition_ttl: nil, **options)
serialized_entry = serialize_entry(entry, raw: raw)
# If race condition TTL is in use, ensure that cache entries
# stick around a bit longer after they would have expired
# so we can purposefully serve stale entries.
if race_condition_ttl && expires_in && expires_in > 0 && !raw
expires_in += 5.minutes
end
failsafe :write_entry, returning: false do
if unless_exist || expires_in
modifiers = {}
modifiers[:nx] = unless_exist
modifiers[:px] = (1000 * expires_in.to_f).ceil if expires_in
redis.with { |c| c.set key, serialized_entry, **modifiers }
else
redis.with { |c| c.set key, serialized_entry }
end
end
end
Defined in activesupport/lib/active_support/cache/redis_cache_store.rb line 381
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::Cache::RedisCacheStore