Interface ICache<TK, TV>
Main entry point for Ignite cache APIs. You can get a named cache by calling GetCache<TK, TV>(String) method.
Cache API supports distributed transactions. All Get(...), Put(...), Replace(...),
and Remove(...) operations are transactional and will participate in an ongoing transaction,
if any. Other methods like Peek(...) or various Contains(...) methods may
be transaction-aware, i.e. check in-transaction entries first, but will not affect the current
state of transaction. See ITransaction documentation for more information
about transactions.
Neither null keys or values are allowed to be stored in cache. If a null value
happens to be in cache (e.g. after invalidation or remove), then cache will treat this case
as there is no value at all.
Note that cache is generic and you can only work with provided key and value types. If cache also
contains keys or values of other types, any attempt to retrieve them will result in
All members are thread-safe and may be used concurrently from multiple threads.
Namespace: Apache.Ignite.Core.Cache
Assembly: Apache.Ignite.Core.dll
Syntax
public interface ICache<TK, TV> : IEnumerable<ICacheEntry<TK, TV>>
Type Parameters
| Name | Description |
|---|---|
| TK | Key type. |
| TV | Value type. |
Properties
Ignite
Ignite hosting this cache.
Declaration
IIgnite Ignite { get; }
Property Value
| Type | Description |
|---|---|
| IIgnite |
IsKeepBinary
Gets a value indicating whether to keep values in binary form.
Declaration
bool IsKeepBinary { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Item[TK]
Gets or sets a cache value with the specified key. Shortcut to Get(TK) and Put(TK, TV)
Declaration
TV this[TK key] { get; set; }
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Property Value
| Type | Description |
|---|---|
| TV | Cache value with the specified key. |
Name
Name of this cache (null for default cache).
Declaration
string Name { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Methods
Clear()
Clears the contents of the cache, without notifying listeners or CacheWriters.
Declaration
void Clear()
Clear(TK)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Declaration
void Clear(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to clear. |
ClearAll(IEnumerable<TK>)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Declaration
void ClearAll(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys to clear. |
ClearAllAsync(IEnumerable<TK>)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Declaration
Task ClearAllAsync(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys to clear. |
Returns
| Type | Description |
|---|---|
| Task |
ClearAsync()
Clears the contents of the cache, without notifying listeners or CacheWriters.
Declaration
Task ClearAsync()
Returns
| Type | Description |
|---|---|
| Task |
ClearAsync(TK)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Declaration
Task ClearAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to clear. |
Returns
| Type | Description |
|---|---|
| Task |
ClearStatistics()
Clears cluster statistics for this cache.
Declaration
void ClearStatistics()
ContainsKey(TK)
Check if cache contains mapping for this key.
Declaration
bool ContainsKey(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if cache contains mapping for this key. |
ContainsKeyAsync(TK)
Check if cache contains mapping for this key.
Declaration
Task<bool> ContainsKeyAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if cache contains mapping for this key. |
ContainsKeys(IEnumerable<TK>)
Check if cache contains mapping for these keys.
Declaration
bool ContainsKeys(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if cache contains mapping for all these keys. |
ContainsKeysAsync(IEnumerable<TK>)
Check if cache contains mapping for these keys.
Declaration
Task<bool> ContainsKeysAsync(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if cache contains mapping for all these keys. |
EnableStatistics(Boolean)
Sets statistics (metrics) enabled flag cluster wide for this cache.
Declaration
void EnableStatistics(bool enabled)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | enabled | Enabled flag |
Get(TK)
Retrieves value mapped to the specified key from cache.
If the value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disable, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
TV Get(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Returns
| Type | Description |
|---|---|
| TV | Value. |
GetAll(IEnumerable<TK>)
Retrieves values mapped to the specified keys from cache. If some value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disabled, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
ICollection<ICacheEntry<TK, TV>> GetAll(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys. |
Returns
| Type | Description |
|---|---|
| ICollection<ICacheEntry<TK, TV>> | Map of key-value pairs. |
GetAllAsync(IEnumerable<TK>)
Retrieves values mapped to the specified keys from cache. If some value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disabled, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<ICollection<ICacheEntry<TK, TV>>> GetAllAsync(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys. |
Returns
| Type | Description |
|---|---|
| Task<ICollection<ICacheEntry<TK, TV>>> | Map of key-value pairs. |
GetAndPut(TK, TV)
Associates the specified value with the specified key in this cache, returning an existing value if one existed.
Declaration
CacheResult<TV> GetAndPut(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| CacheResult<TV> | The value associated with the key at the start of the operation. |
GetAndPutAsync(TK, TV)
Associates the specified value with the specified key in this cache, returning an existing value if one existed.
Declaration
Task<CacheResult<TV>> GetAndPutAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| Task<CacheResult<TV>> | The value associated with the key at the start of the operation. |
GetAndPutIfAbsent(TK, TV)
Stores given key-value pair in cache only if cache had no previous mapping for it. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the swap storage, and consecutively, if it's not in swap, from the underlying persistent storage. If the returned value is not needed, method putxIfAbsent() should be used instead of this one to avoid the overhead associated with returning of the previous value. If write-through is enabled, the stored value will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
CacheResult<TV> GetAndPutIfAbsent(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | val | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| CacheResult<TV> | Previously contained value regardless of whether put happened or not. |
GetAndPutIfAbsentAsync(TK, TV)
Stores given key-value pair in cache only if cache had no previous mapping for it. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the swap storage, and consecutively, if it's not in swap, from the underlying persistent storage. If the returned value is not needed, method putxIfAbsent() should be used instead of this one to avoid the overhead associated with returning of the previous value. If write-through is enabled, the stored value will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<CacheResult<TV>> GetAndPutIfAbsentAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | val | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| Task<CacheResult<TV>> | Previously contained value regardless of whether put happened or not. |
GetAndRemove(TK)
Atomically removes the entry for a key only if currently mapped to some value.
Declaration
CacheResult<TV> GetAndRemove(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is associated. |
Returns
| Type | Description |
|---|---|
| CacheResult<TV> | The value if one existed. |
GetAndRemoveAsync(TK)
Atomically removes the entry for a key only if currently mapped to some value.
Declaration
Task<CacheResult<TV>> GetAndRemoveAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is associated. |
Returns
| Type | Description |
|---|---|
| Task<CacheResult<TV>> | The value if one existed. |
GetAndReplace(TK, TV)
Atomically replaces the value for a given key if and only if there is a value currently mapped by the key.
Declaration
CacheResult<TV> GetAndReplace(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| CacheResult<TV> | The previous value associated with the specified key. |
GetAndReplaceAsync(TK, TV)
Atomically replaces the value for a given key if and only if there is a value currently mapped by the key.
Declaration
Task<CacheResult<TV>> GetAndReplaceAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| Task<CacheResult<TV>> | The previous value associated with the specified key. |
GetAsync(TK)
Retrieves value mapped to the specified key from cache.
If the value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disable, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<TV> GetAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Returns
| Type | Description |
|---|---|
| Task<TV> | Value. |
GetConfiguration()
Gets the cache configuration.
Declaration
CacheConfiguration GetConfiguration()
Returns
| Type | Description |
|---|---|
| CacheConfiguration |
GetLocalEntries(CachePeekMode[])
Get local cache entries.
Declaration
IEnumerable<ICacheEntry<TK, TV>> GetLocalEntries(params CachePeekMode[] peekModes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | peekModes | Peek modes. |
Returns
| Type | Description |
|---|---|
| IEnumerable<ICacheEntry<TK, TV>> | Enumerable instance. |
GetLocalMetrics()
Gets local snapshot metrics (statistics) for this cache.
Declaration
ICacheMetrics GetLocalMetrics()
Returns
| Type | Description |
|---|---|
| ICacheMetrics | Cache metrics. |
GetLocalSize(CachePeekMode[])
Gets the number of all entries cached on this node.
Declaration
int GetLocalSize(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int32 | Cache size on this node. |
GetLocalSizeLong(CachePeekMode[])
Gets the number of all entries cached on this node as long value.
Declaration
long GetLocalSizeLong(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int64 | Cache size on this node. |
GetLocalSizeLong(Int32, CachePeekMode[])
Gets the number of all entries in a partition cached on this node as long value.
Declaration
long GetLocalSizeLong(int partition, params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Cache partition. |
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int64 | Partition cache size on this node. |
GetLostPartitions()
Gets lost partitions IDs.
See also PartitionLossPolicy and ResetLostPartitions(IEnumerable<String>).
Declaration
ICollection<int> GetLostPartitions()
Returns
| Type | Description |
|---|---|
| ICollection<System.Int32> |
GetMetrics()
Gets global (whole cluster) snapshot metrics (statistics) for this cache.
Declaration
ICacheMetrics GetMetrics()
Returns
| Type | Description |
|---|---|
| ICacheMetrics | Cache metrics. |
GetMetrics(IClusterGroup)
Gets global (whole cluster group) snapshot metrics (statistics) for this cache.
Declaration
ICacheMetrics GetMetrics(IClusterGroup clusterGroup)
Parameters
| Type | Name | Description |
|---|---|---|
| IClusterGroup | clusterGroup | The cluster group to get metrics for. |
Returns
| Type | Description |
|---|---|
| ICacheMetrics |
GetQueryMetrics()
Gets query metrics.
Declaration
IQueryMetrics GetQueryMetrics()
Returns
| Type | Description |
|---|---|
| IQueryMetrics | Query metrics. |
GetSize(CachePeekMode[])
Gets the number of all entries cached across all nodes.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
int GetSize(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int32 | Cache size across all nodes. |
GetSizeAsync(CachePeekMode[])
Gets the number of all entries cached across all nodes.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
Task<int> GetSizeAsync(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| Task<System.Int32> | Cache size across all nodes. |
GetSizeLong(CachePeekMode[])
Gets the number of all entries cached across all nodes as long value.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
long GetSizeLong(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int64 | Cache size across all nodes. |
GetSizeLong(Int32, CachePeekMode[])
Gets the number of all entries in partition cached across all nodes as long value.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
long GetSizeLong(int partition, params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Cache partition. |
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| System.Int64 | Partition cache size across all nodes. |
GetSizeLongAsync(CachePeekMode[])
Gets the number of all entries cached across all nodes as long value.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
Task<long> GetSizeLongAsync(params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| Task<System.Int64> | Cache size across all nodes. |
GetSizeLongAsync(Int32, CachePeekMode[])
Gets the number of all entries in a partition cached across all nodes as long value.
NOTE: this operation is distributed and will query all participating nodes for their cache sizes.
Declaration
Task<long> GetSizeLongAsync(int partition, params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Cache partition. |
| CachePeekMode[] | modes | Optional peek modes. If not provided, then total cache size is returned. |
Returns
| Type | Description |
|---|---|
| Task<System.Int64> | Partition cache size across all nodes. |
Invoke<TArg, TRes>(TK, ICacheEntryProcessor<TK, TV, TArg, TRes>, TArg)
Invokes an ICacheEntryProcessor<TK, TV, TArg, TRes> against the IMutableCacheEntry<TK, TV> specified by the provided key. If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) or a surrogate entry, consisting of the key with a null value is used instead.
Declaration
TRes Invoke<TArg, TRes>(TK key, ICacheEntryProcessor<TK, TV, TArg, TRes> processor, TArg arg)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | The key. |
| ICacheEntryProcessor<TK, TV, TArg, TRes> | processor | The processor. |
| TArg | arg | The argument. |
Returns
| Type | Description |
|---|---|
| TRes | Result of the processing. |
Type Parameters
| Name | Description |
|---|---|
| TArg | The type of the argument. |
| TRes | The type of the result. |
Exceptions
| Type | Condition |
|---|---|
| CacheEntryProcessorException | If an exception has occured during processing. |
InvokeAll<TArg, TRes>(IEnumerable<TK>, ICacheEntryProcessor<TK, TV, TArg, TRes>, TArg)
Invokes an ICacheEntryProcessor<TK, TV, TArg, TRes> against a set of keys. If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) or a surrogate entry, consisting of the key with a null value is used instead.
The order that the entries for the keys are processed is undefined. Implementations may choose to process the entries in any order, including concurrently. Furthermore there is no guarantee implementations will use the same processor instance to process each entry, as the case may be in a non-local cache topology.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
ICollection<ICacheEntryProcessorResult<TK, TRes>> InvokeAll<TArg, TRes>(IEnumerable<TK> keys, ICacheEntryProcessor<TK, TV, TArg, TRes> processor, TArg arg)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | The keys. |
| ICacheEntryProcessor<TK, TV, TArg, TRes> | processor | The processor. |
| TArg | arg | The argument. |
Returns
| Type | Description |
|---|---|
| ICollection<ICacheEntryProcessorResult<TK, TRes>> | Map of ICacheEntryProcessorResult<TK, T> of the processing per key, if any, defined by the ICacheEntryProcessor<TK, TV, TArg, TRes> implementation. No mappings will be returned for processors that return a null value for a key. |
Type Parameters
| Name | Description |
|---|---|
| TArg | The type of the argument. |
| TRes | The type of the result. |
Exceptions
| Type | Condition |
|---|---|
| CacheEntryProcessorException | If an exception has occured during processing. |
InvokeAllAsync<TArg, TRes>(IEnumerable<TK>, ICacheEntryProcessor<TK, TV, TArg, TRes>, TArg)
Invokes an ICacheEntryProcessor<TK, TV, TArg, TRes> against a set of keys. If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) or a surrogate entry, consisting of the key with a null value is used instead.
The order that the entries for the keys are processed is undefined. Implementations may choose to process the entries in any order, including concurrently. Furthermore there is no guarantee implementations will use the same processor instance to process each entry, as the case may be in a non-local cache topology.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
Task<ICollection<ICacheEntryProcessorResult<TK, TRes>>> InvokeAllAsync<TArg, TRes>(IEnumerable<TK> keys, ICacheEntryProcessor<TK, TV, TArg, TRes> processor, TArg arg)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | The keys. |
| ICacheEntryProcessor<TK, TV, TArg, TRes> | processor | The processor. |
| TArg | arg | The argument. |
Returns
| Type | Description |
|---|---|
| Task<ICollection<ICacheEntryProcessorResult<TK, TRes>>> | Map of ICacheEntryProcessorResult<TK, T> of the processing per key, if any, defined by the ICacheEntryProcessor<TK, TV, TArg, TRes> implementation. No mappings will be returned for processors that return a null value for a key. |
Type Parameters
| Name | Description |
|---|---|
| TArg | The type of the argument. |
| TRes | The type of the result. |
Exceptions
| Type | Condition |
|---|---|
| CacheEntryProcessorException | If an exception has occured during processing. |
InvokeAsync<TArg, TRes>(TK, ICacheEntryProcessor<TK, TV, TArg, TRes>, TArg)
Invokes an ICacheEntryProcessor<TK, TV, TArg, TRes> against the IMutableCacheEntry<TK, TV> specified by the provided key. If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) or a surrogate entry, consisting of the key with a null value is used instead.
Declaration
Task<TRes> InvokeAsync<TArg, TRes>(TK key, ICacheEntryProcessor<TK, TV, TArg, TRes> processor, TArg arg)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | The key. |
| ICacheEntryProcessor<TK, TV, TArg, TRes> | processor | The processor. |
| TArg | arg | The argument. |
Returns
| Type | Description |
|---|---|
| Task<TRes> | Result of the processing. |
Type Parameters
| Name | Description |
|---|---|
| TArg | The type of the argument. |
| TRes | The type of the result. |
Exceptions
| Type | Condition |
|---|---|
| CacheEntryProcessorException | If an exception has occured during processing. |
IsEmpty()
Checks whether this cache contains no key-value mappings.
Semantically equals to ICache.Size(CachePeekMode.PRIMARY) == 0.
Declaration
bool IsEmpty()
Returns
| Type | Description |
|---|---|
| System.Boolean |
IsLocalLocked(TK, Boolean)
Checks if specified key is locked.
This is a local operation and does not involve any network trips or access to persistent storage in any way.
Declaration
bool IsLocalLocked(TK key, bool byCurrentThread)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to check. |
| System.Boolean | byCurrentThread | If true, checks that current thread owns a lock on this key; otherwise, checks that any thread on any node owns a lock on this key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if specified key is locked; otherwise, false. |
LoadAll(IEnumerable<TK>, Boolean)
Loads the specified entries into the cache using the configured ICacheStore> for the given keys.
If an entry for a key already exists in the cache, a value will be loaded if and only if
replaceExistingValues is true.
If no loader is configured for the cache, no objects will be loaded.
Declaration
void LoadAll(IEnumerable<TK> keys, bool replaceExistingValues)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | The keys to load. |
| System.Boolean | replaceExistingValues | if set to |
LoadAllAsync(IEnumerable<TK>, Boolean)
Asynchronously loads the specified entries into the cache using the configured ICacheStore> for the given keys.
If an entry for a key already exists in the cache, a value will be loaded if and only if
replaceExistingValues is true.
If no loader is configured for the cache, no objects will be loaded.
Declaration
Task LoadAllAsync(IEnumerable<TK> keys, bool replaceExistingValues)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | The keys to load. |
| System.Boolean | replaceExistingValues | if set to |
Returns
| Type | Description |
|---|---|
| Task |
LoadCache(ICacheEntryFilter<TK, TV>, Object[])
Executes LocalLoadCache(ICacheEntryFilter<TK, TV>, Object[]) on all cache nodes.
Declaration
void LoadCache(ICacheEntryFilter<TK, TV> p, params object[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| ICacheEntryFilter<TK, TV> | p | Optional predicate. If provided, will be used to filter values to be put into cache. |
| System.Object[] | args | Optional user arguments to be passed into LoadCache(Action<TK, TV>, Object[]). |
LoadCacheAsync(ICacheEntryFilter<TK, TV>, Object[])
Executes LocalLoadCache(ICacheEntryFilter<TK, TV>, Object[]) on all cache nodes.
Declaration
Task LoadCacheAsync(ICacheEntryFilter<TK, TV> p, params object[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| ICacheEntryFilter<TK, TV> | p | Optional predicate. If provided, will be used to filter values to be put into cache. |
| System.Object[] | args | Optional user arguments to be passed into LoadCache(Action<TK, TV>, Object[]). |
Returns
| Type | Description |
|---|---|
| Task |
LocalClear(TK)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Note that this operation is local as it merely clears an entry from local cache, it does not remove entries from remote caches.
Declaration
void LocalClear(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to clear. |
LocalClearAll(IEnumerable<TK>)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. Entry is cleared only if it is not currently locked, and is not participating in a transaction.
Note that this operation is local as it merely clears entries from local cache, it does not remove entries from remote caches.
Declaration
void LocalClearAll(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys to clear. |
LocalEvict(IEnumerable<TK>)
Attempts to evict all entries associated with keys. Note, that entry will be evicted only if it's not used (not participating in any locks or transactions).
Declaration
void LocalEvict(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys to evict from cache. |
LocalLoadCache(ICacheEntryFilter<TK, TV>, Object[])
Delegates to LoadCache(Action<TK, TV>, Object[]) method to load state from the underlying persistent storage. The loaded values will then be given to the optionally passed in predicate, and, if the predicate returns true, will be stored in cache. If predicate is null, then all loaded values will be stored in cache.
Declaration
void LocalLoadCache(ICacheEntryFilter<TK, TV> p, params object[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| ICacheEntryFilter<TK, TV> | p | Optional predicate. If provided, will be used to filter values to be put into cache. |
| System.Object[] | args | Optional user arguments to be passed into LoadCache(Action<TK, TV>, Object[]). |
LocalLoadCacheAsync(ICacheEntryFilter<TK, TV>, Object[])
Delegates to LoadCache(Action<TK, TV>, Object[]) method to load state from the underlying persistent storage. The loaded values will then be given to the optionally passed in predicate, and, if the predicate returns true, will be stored in cache. If predicate is null, then all loaded values will be stored in cache.
Declaration
Task LocalLoadCacheAsync(ICacheEntryFilter<TK, TV> p, params object[] args)
Parameters
| Type | Name | Description |
|---|---|---|
| ICacheEntryFilter<TK, TV> | p | Optional predicate. If provided, will be used to filter values to be put into cache. |
| System.Object[] | args | Optional user arguments to be passed into LoadCache(Action<TK, TV>, Object[]). |
Returns
| Type | Description |
|---|---|
| Task |
LocalPeek(TK, CachePeekMode[])
Peeks at cached value using optional set of peek modes. This method will sequentially iterate over given peek modes, and try to peek at value using each peek mode. Once a non-null value is found, it will be immediately returned. This method does not participate in any transactions, however, it may peek at transactional value depending on the peek modes used. If key is not present in cache, KeyNotFoundException will be thrown.
Declaration
TV LocalPeek(TK key, params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
| CachePeekMode[] | modes | Peek modes. |
Returns
| Type | Description |
|---|---|
| TV | Peeked value. |
LocalPreloadPartition(Int32)
Efficiently preloads cache partition into page memory if it exists on the local node.
This is useful for fast iteration over cache partition data if persistence is enabled and the data is "cold".
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page replacement.
This method is irrelevant for in-memory caches.
Declaration
bool LocalPreloadPartition(int partition)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Partition number. |
Returns
| Type | Description |
|---|---|
| System.Boolean | if partition was preloaded, if it doesn't belong to local node. |
Lock(TK)
Creates an ICacheLock instance associated with passed key. This method does not acquire lock immediately, you have to call appropriate method on returned instance.
Declaration
ICacheLock Lock(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key for lock. |
Returns
| Type | Description |
|---|---|
| ICacheLock | New ICacheLock instance associated with passed key. |
LockAll(IEnumerable<TK>)
Creates an ICacheLock instance associated with passed keys. This method does not acquire lock immediately, you have to call appropriate method on returned instance.
Declaration
ICacheLock LockAll(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys for lock. |
Returns
| Type | Description |
|---|---|
| ICacheLock | New ICacheLock instance associated with passed keys. |
PreloadPartition(Int32)
Efficiently preloads cache partition into page memory.
This is useful for fast iteration over cache partition data if persistence is enabled and the data is "cold".
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page replacement.
This method is irrelevant for in-memory caches. Calling this method on an in-memory cache will result in exception.
Declaration
void PreloadPartition(int partition)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Partition number. |
PreloadPartitionAsync(Int32)
Efficiently preloads cache partition into page memory asynchronously.
This is useful for fast iteration over cache partition data if persistence is enabled and the data is "cold".
Preload will reduce available amount of page memory for subsequent operations and may lead to earlier page replacement.
This method is irrelevant for in-memory caches. Calling this method on an in-memory cache will result in exception.
Declaration
Task PreloadPartitionAsync(int partition)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | partition | Partition number. |
Returns
| Type | Description |
|---|---|
| Task | Task. |
Put(TK, TV)
Associates the specified value with the specified key in the cache.
If the cache previously contained a mapping for the key, the old value is replaced by the specified value.
Declaration
void Put(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
PutAll(IEnumerable<KeyValuePair<TK, TV>>)
Stores given key-value pairs in cache. If write-through is enabled, the stored values will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
void PutAll(IEnumerable<KeyValuePair<TK, TV>> vals)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<KeyValuePair<TK, TV>> | vals | Key-value pairs to store in cache. |
PutAllAsync(IEnumerable<KeyValuePair<TK, TV>>)
Stores given key-value pairs in cache. If write-through is enabled, the stored values will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
Task PutAllAsync(IEnumerable<KeyValuePair<TK, TV>> vals)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<KeyValuePair<TK, TV>> | vals | Key-value pairs to store in cache. |
Returns
| Type | Description |
|---|---|
| Task |
PutAsync(TK, TV)
Associates the specified value with the specified key in the cache.
If the cache previously contained a mapping for the key, the old value is replaced by the specified value.
Declaration
Task PutAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| Task |
PutIfAbsent(TK, TV)
Atomically associates the specified key with the given value if it is not already associated with a value.
Declaration
bool PutIfAbsent(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if a value was set. |
PutIfAbsentAsync(TK, TV)
Atomically associates the specified key with the given value if it is not already associated with a value.
Declaration
Task<bool> PutIfAbsentAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key with which the specified value is to be associated. |
| TV | val | Value to be associated with the specified key. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if a value was set. |
Query(QueryBase)
Queries cache.
Declaration
IQueryCursor<ICacheEntry<TK, TV>> Query(QueryBase qry)
Parameters
| Type | Name | Description |
|---|---|---|
| QueryBase | qry | Query. |
Returns
| Type | Description |
|---|---|
| IQueryCursor<ICacheEntry<TK, TV>> | Cursor. |
Query(SqlFieldsQuery)
Queries separate entry fields.
Declaration
IFieldsQueryCursor Query(SqlFieldsQuery qry)
Parameters
| Type | Name | Description |
|---|---|---|
| SqlFieldsQuery | qry | SQL fields query. |
Returns
| Type | Description |
|---|---|
| IFieldsQueryCursor | Cursor. |
QueryContinuous(ContinuousQuery<TK, TV>)
Start continuous query execution.
Declaration
IContinuousQueryHandle QueryContinuous(ContinuousQuery<TK, TV> qry)
Parameters
| Type | Name | Description |
|---|---|---|
| ContinuousQuery<TK, TV> | qry | Continuous query. |
Returns
| Type | Description |
|---|---|
| IContinuousQueryHandle | Handle to stop query execution. |
QueryContinuous(ContinuousQuery<TK, TV>, QueryBase)
Start continuous query execution.
Declaration
IContinuousQueryHandle<ICacheEntry<TK, TV>> QueryContinuous(ContinuousQuery<TK, TV> qry, QueryBase initialQry)
Parameters
| Type | Name | Description |
|---|---|---|
| ContinuousQuery<TK, TV> | qry | Continuous query. |
| QueryBase | initialQry | The initial query. This query will be executed before continuous listener is registered which allows to iterate through entries which have already existed at the time continuous query is executed. |
Returns
| Type | Description |
|---|---|
| IContinuousQueryHandle<ICacheEntry<TK, TV>> | Handle to get initial query cursor or stop query execution. |
QueryContinuous(ContinuousQuery<TK, TV>, SqlFieldsQuery)
Start continuous query execution.
Declaration
IContinuousQueryHandleFields QueryContinuous(ContinuousQuery<TK, TV> qry, SqlFieldsQuery initialQry)
Parameters
| Type | Name | Description |
|---|---|---|
| ContinuousQuery<TK, TV> | qry | Continuous query. |
| SqlFieldsQuery | initialQry | The initial fields query. This query will be executed before continuous listener is registered which allows to iterate through entries which have already existed at the time continuous query is executed. |
Returns
| Type | Description |
|---|---|
| IContinuousQueryHandleFields | Handle to get initial query cursor or stop query execution. |
QueryFields(SqlFieldsQuery)
Queries separate entry fields.
Declaration
IQueryCursor<IList> QueryFields(SqlFieldsQuery qry)
Parameters
| Type | Name | Description |
|---|---|---|
| SqlFieldsQuery | qry | SQL fields query. |
Returns
| Type | Description |
|---|---|
| IQueryCursor<IList> | Cursor. |
Rebalance()
Rebalances cache partitions. This method is usually used when rebalanceDelay configuration parameter has non-zero value. When many nodes are started or stopped almost concurrently, it is more efficient to delay rebalancing until the node topology is stable to make sure that no redundant re-partitioning happens.
In case of partitioned caches, for better efficiency user should usually make sure that new nodes get placed on the same place of consistent hash ring as the left nodes, and that nodes are restarted before rebalanceDelay expires.
Declaration
Task Rebalance()
Returns
| Type | Description |
|---|---|
| Task | Task that will be completed when rebalancing is finished. |
Remove(TK)
Removes given key mapping from cache. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the disk-based swap storage, and consecutively, if it's not in swap, from the underlying persistent storage. If the returned value is not needed, method removex() should always be used instead of this one to avoid the overhead associated with returning of the previous value. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
bool Remove(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key whose mapping is to be removed from cache. |
Returns
| Type | Description |
|---|---|
| System.Boolean | False if there was no matching key. |
Remove(TK, TV)
Removes given key mapping from cache if one exists and value is equal to the passed in value. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
bool Remove(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key whose mapping is to be removed from cache. |
| TV | val | Value to match against currently cached value. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if entry was removed, false otherwise. |
RemoveAll()
Removes all mappings from cache. If write-through is enabled, the value will be removed from store. This method is not transactional.
Declaration
void RemoveAll()
RemoveAll(IEnumerable<TK>)
Removes given key mappings from cache. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
void RemoveAll(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys whose mappings are to be removed from cache. |
RemoveAllAsync()
Removes all mappings from cache. If write-through is enabled, the value will be removed from store. This method is not transactional.
Declaration
Task RemoveAllAsync()
Returns
| Type | Description |
|---|---|
| Task |
RemoveAllAsync(IEnumerable<TK>)
Removes given key mappings from cache. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Keys are locked in the order in which they are enumerated. It is caller's responsibility to
make sure keys always follow same order, such as by using
Declaration
Task RemoveAllAsync(IEnumerable<TK> keys)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TK> | keys | Keys whose mappings are to be removed from cache. |
Returns
| Type | Description |
|---|---|
| Task |
RemoveAsync(TK)
Removes given key mapping from cache. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the disk-based swap storage, and consecutively, if it's not in swap, from the underlying persistent storage. If the returned value is not needed, method removex() should always be used instead of this one to avoid the overhead associated with returning of the previous value. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<bool> RemoveAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key whose mapping is to be removed from cache. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | False if there was no matching key. |
RemoveAsync(TK, TV)
Removes given key mapping from cache if one exists and value is equal to the passed in value. If write-through is enabled, the value will be removed from store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<bool> RemoveAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key whose mapping is to be removed from cache. |
| TV | val | Value to match against currently cached value. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if entry was removed, false otherwise. |
Replace(TK, TV)
Stores given key-value pair in cache only if there is a previous mapping for it. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the swap storage, and consecutively, if it's not in swap, rom the underlying persistent storage. If write-through is enabled, the stored value will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
bool Replace(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | val | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the value was replaced. |
Replace(TK, TV, TV)
Stores given key-value pair in cache only if only if the previous value is equal to the old value passed as argument. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
bool Replace(TK key, TV oldVal, TV newVal)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | oldVal | Old value to match. |
| TV | newVal | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if replace happened, false otherwise. |
ReplaceAsync(TK, TV)
Stores given key-value pair in cache only if there is a previous mapping for it. If cache previously contained value for the given key, then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, which in its turn may load the value from the swap storage, and consecutively, if it's not in swap, rom the underlying persistent storage. If write-through is enabled, the stored value will be persisted to store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<bool> ReplaceAsync(TK key, TV val)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | val | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if the value was replaced. |
ReplaceAsync(TK, TV, TV)
Stores given key-value pair in cache only if only if the previous value is equal to the old value passed as argument. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<bool> ReplaceAsync(TK key, TV oldVal, TV newVal)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key to store in cache. |
| TV | oldVal | Old value to match. |
| TV | newVal | Value to be associated with the given key. |
Returns
| Type | Description |
|---|---|
| Task<System.Boolean> | True if replace happened, false otherwise. |
ResetQueryMetrics()
Reset query metrics.
Declaration
void ResetQueryMetrics()
TryGet(TK, out TV)
Retrieves value mapped to the specified key from cache. If the value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disable, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
bool TryGet(TK key, out TV value)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
| TV | value | When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the cache contains an element with the specified key; otherwise, false. |
TryGetAsync(TK)
Retrieves value mapped to the specified key from cache. If the value is not present in cache, then it will be looked up from swap storage. If it's not present in swap, or if swap is disable, and if read-through is allowed, value will be loaded from persistent store. This method is transactional and will enlist the entry into ongoing transaction if there is one.
Declaration
Task<CacheResult<TV>> TryGetAsync(TK key)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
Returns
| Type | Description |
|---|---|
| Task<CacheResult<TV>> | CacheResult<T> containing a bool success flag and a value. |
TryLocalPeek(TK, out TV, CachePeekMode[])
Peeks at cached value using optional set of peek modes. This method will sequentially iterate over given peek modes, and try to peek at value using each peek mode. Once a non-null value is found, it will be immediately returned. This method does not participate in any transactions, however, it may peek at transactional value depending on the peek modes used.
Declaration
bool TryLocalPeek(TK key, out TV value, params CachePeekMode[] modes)
Parameters
| Type | Name | Description |
|---|---|---|
| TK | key | Key. |
| TV | value | When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized. |
| CachePeekMode[] | modes | Peek modes. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the cache contains an element with the specified key; otherwise, false. |
WithExpiryPolicy(IExpiryPolicy)
Returns cache with the specified expired policy set. This policy will be used for each operation invoked on the returned cache.
Expiry durations for each operation are calculated only once and then used as constants. Please consider this when implementing custom expiry policy implementations.
Declaration
ICache<TK, TV> WithExpiryPolicy(IExpiryPolicy plc)
Parameters
| Type | Name | Description |
|---|---|---|
| IExpiryPolicy | plc | Expiry policy to use. |
Returns
| Type | Description |
|---|---|
| ICache<TK, TV> | Cache instance with the specified expiry policy set. |
WithKeepBinary<TK1, TV1>()
Gets cache with KeepBinary mode enabled, changing key and/or value types if necessary.
You can only change key/value types when transitioning from non-binary to binary cache;
Changing type of binary cache is not allowed and will throw an
Declaration
ICache<TK1, TV1> WithKeepBinary<TK1, TV1>()
Returns
| Type | Description |
|---|---|
| ICache<TK1, TV1> | Cache instance with binary mode enabled. |
Type Parameters
| Name | Description |
|---|---|
| TK1 | Key type in binary mode. |
| TV1 | Value type in binary mode. |
WithNoRetries()
Get another cache instance with no-retries behavior enabled.
Declaration
ICache<TK, TV> WithNoRetries()
Returns
| Type | Description |
|---|---|
| ICache<TK, TV> | Cache with no-retries behavior enabled. |
WithPartitionRecover()
Gets an instance of cache that will be allowed to execute cache operations (read, write) regardless of partition loss policy.
Declaration
ICache<TK, TV> WithPartitionRecover()
Returns
| Type | Description |
|---|---|
| ICache<TK, TV> | Cache without partition loss protection. |
WithSkipStore()
Get another cache instance with read-through and write-through behavior disabled.
Declaration
ICache<TK, TV> WithSkipStore()
Returns
| Type | Description |
|---|---|
| ICache<TK, TV> | Cache with read-through and write-through behavior disabled. |