instance method write_entry

Ruby on Rails 5.2.8.1

Since v5.2.8.1 Private

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

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

key req
entry req
unless_exist key = false
raw key = false
expires_in key = nil
race_condition_ttl key = nil
options keyrest
Source
# File activesupport/lib/active_support/cache/redis_cache_store.rb, line 360
        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 360 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Cache::RedisCacheStore

Type at least 2 characters to search.

↑↓ navigate · open · esc close