Method: ActiveSupport::Cache::MemCacheStore#decrement
- Defined in:
- activesupport/lib/active_support/cache/mem_cache_store.rb
#decrement(name, amount = 1, options = nil) ⇒ Object
Decrement a cached integer value using the memcached decr atomic operator. Returns the updated value.
If the key is unset or has expired, it will be set to 0. Memcached does not support negative counters.
cache.decrement("foo") # => 0
To set a specific value, call #write passing raw: true:
cache.write("baz", 5, raw: true)
cache.decrement("baz") # => 4
Decrementing a non-numeric value, or a value written without raw: true, will fail and return nil.
158 159 160 161 162 163 164 165 166 167 |
# File 'activesupport/lib/active_support/cache/mem_cache_store.rb', line 158 def decrement(name, amount = 1, = nil) = () key = normalize_key(name, ) instrument(:decrement, key, amount: amount) do rescue_error_with nil do @data.with { |c| c.decr(key, amount, [:expires_in], 0) } end end end |