PutIfAbsentAsync Method
PutIfAbsentAsync(TKey, TValue)
Adds an entry if no entry with the key already exists. Returns the new value, or the existing value if the entry already exists.
Declaration
Task<TValue> PutIfAbsentAsync(TKey key, TValue value)
Parameters
| TKey | key | A key. |
| TValue | value | The value. |
Returns
| Task<TValue> | The value for the key. This will be either the existing value for the key if the entry already exists, or the new value if the no entry with the key already existed. |
Remarks
The value never expires.
The value becomes idle after the server-configured idle time.
This methods interacts with the server-side MapStore.
If no value for the specified key is found in memory, MapLoader.load(...) is invoked
to try to load the value from the MapStore backing the map, if any.
If write-through persistence is configured, before the value is stored in memory,
MapStore.store is invoked to write the value to the store.
PutIfAbsentAsync(TKey, TValue, TimeSpan)
Adds an entry with a time-to-live if no entry with the key already exists. Returns the new value, or the existing value if the entry already exists.
Declaration
Task<TValue> PutIfAbsentAsync(TKey key, TValue value, TimeSpan timeToLive)
Parameters
| TKey | key | A key. |
| TValue | value | A value. |
| TimeSpan | timeToLive | A time to live (0ms to live forever; -1ms to use the server-configured value). |
Returns
| Task<TValue> | The value for the key. This will be either the existing value for the key if the entry already exists, or the new value if the no entry with the key already existed. |
Remarks
The value is automatically expired, evicted and removed after the
timeToLive has elapsed. If timeToLive is 0ms, the value
is retained indefinitely. If it is -1ms, it lives for the duration of the server-configured time-to-live.
The value becomes idle after the server-configured idle time.
This methods interacts with the server-side MapStore.
If no value for the specified key is found in memory, MapLoader.load(...) is invoked
to try to load the value from the MapStore backing the map, if any.
If write-through persistence is configured, before the value is stored in memory,
MapStore.store is invoked to write the value to the store.
PutIfAbsentAsync(TKey, TValue, TimeSpan, TimeSpan)
Adds an entry with a time-to-live and a max-idle if no entry with the key already exists. Returns the new value, or the existing value if the entry already exists.
Declaration
Task<TValue> PutIfAbsentAsync(TKey key, TValue value, TimeSpan timeToLive, TimeSpan maxIdle)
Parameters
| TKey | key | A key. |
| TValue | value | A value. |
| TimeSpan | timeToLive | A time to live (0ms to live forever; -1ms to use the server-configured value). |
| TimeSpan | maxIdle | A max-idle time (0ms to never become idle). |
Returns
| Task<TValue> | The value for the key. This will be either the existing value for the key if the entry already exists, or the new value if the no entry with the key already existed. |
Remarks
The value is automatically expired, evicted and removed after the
timeToLive has elapsed. If timeToLive is 0ms, the value
is retained indefinitely. If it is -1ms, it lives for the duration of the server-configured time-to-live.
The value is considered idle after the maxIdle has elapsed. If it is
0ms, the value never becomes idle.
This methods interacts with the server-side MapStore.
If no value for the specified key is found in memory, MapLoader.load(...) is invoked
to try to load the value from the MapStore backing the map, if any.
If write-through persistence is configured, before the value is stored in memory,
MapStore.store is invoked to write the value to the store.