Are there any plans to implement a sliding expiration for HybridCacheEntryOptions?
The existing DistributedCacheEntryOptions has a SlidingExpiration property which has been working well for my team and I. We have another mechanism to invalidate cache keys when updates to the underlying data occurs so we like to keep the data in Redis for as long as it is being used and eventually expire when that particular data is not regularly accessed.
Desired Solution
Ideally, the same SlidingExpiration property would be added to HybridCacheEntryOptions and the value would be passed along in ToDistributedCacheEntryOptions and handled in the downstream IDistributedCache calls.
API Proposal
namespace Microsoft.Extensions.Caching.Hybrid;
public sealed class HybridCacheEntryOptions
{
public TimeSpan? SlidingExpiration { get; set; }
}
API Usage
// Set the sliding expiration
var entryOptions = new HybridCacheEntryOptions
{
SlidingExpiration = TimeSpan.FromMinutes(5)
};
Risks
At first glance the risk involved here is implementing this in a manner that does not negate the performance benefits provided by using HybridCache.
For instance if a cache request hits the local MemoryCache it's expiration would get updated but the entry in the IDistributedCache would not.
Background and motivation
This is a duplicate of https://github.com/dotnet/aspnetcore/issues/56754 which I believe is in the wrong repo.
Are there any plans to implement a sliding expiration for
HybridCacheEntryOptions
?The existing
DistributedCacheEntryOptions
has aSlidingExpiration
property which has been working well for my team and I. We have another mechanism to invalidate cache keys when updates to the underlying data occurs so we like to keep the data in Redis for as long as it is being used and eventually expire when that particular data is not regularly accessed.Desired Solution
Ideally, the same
SlidingExpiration
property would be added toHybridCacheEntryOptions
and the value would be passed along inToDistributedCacheEntryOptions
and handled in the downstreamIDistributedCache
calls.API Proposal
API Usage
Risks
At first glance the risk involved here is implementing this in a manner that does not negate the performance benefits provided by using
HybridCache
.For instance if a cache request hits the local
MemoryCache
it's expiration would get updated but the entry in theIDistributedCache
would not.