Microsoft.Extensions.Caching.Hybrid 9.2.0-preview.1.25105.6

Microsoft.Extensions.Caching.Hybrid

This package contains a concrete implementation of the HybridCache API, simplifying and enhancing cache usage that might previously have been built on top of IDistributedCache.

Key features:

  • built on top of IDistributedCache - all existing cache backends (Redis, SQL Server, CosmosDB, etc) should work immediately
  • simple API (all the cache, serialization, etc details from are encapsulated)
  • cache-stampede protection (combining of concurrent requests for the same data)
  • performance enhancements such as inbuilt support for the newer IBufferDistributedCache API
  • fully configurable serialization

Full HybridCache documentation is here.

Full documentation

See learn.microsoft.com for full discussion of HybridCache.

Install the package

From the command-line:

dotnet add package Microsoft.Extensions.Caching.Hybrid

Or directly in the C# project file:

<ItemGroup>
  <PackageReference Include="Microsoft.Extensions.Caching.Hybrid" Version="[CURRENTVERSION]" />
</ItemGroup>

Usage example

The HybridCache service can be registered and configured via IServiceCollection, for example:

builder.Services.AddHybridCache(/* optional configuration /*);

Note that in many cases you may also wish to register a distributed cache backend, as discussed here; for example a Redis instance:

builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = builder.Configuration.GetConnectionString("MyRedisConStr");
});

Once registered, the HybridCache instance can be obtained via dependency-injection, allowing the GetOrCreateAsync API to be used to obtain data:

public class SomeService(HybridCache cache)
{
    private HybridCache _cache = cache;

    public async Task<SomeDataType> GetSomeInfoAsync(string name, int id, CancellationToken token = default)
    {
        return await _cache.GetOrCreateAsync(
            $"{name}-{id}", // Unique key to the cache entry
            async cancel => await GetDataFromTheSourceAsync(name, id, cancel),
            cancellationToken: token
        );
    }

    private async Task<SomeDataType> GetDataFromTheSourceAsync(string name, int id, CancellationToken token)
    {
        // talk to the underlying data store here - could be SQL, gRPC, HTTP, etc
    }
}

Additional usage guidance - including expiration, custom serialization support, and alternate usage to reduce delegate allocation - is available on learn.microsoft.com.

Showing the top 20 packages that depend on Microsoft.Extensions.Caching.Hybrid.

Packages Downloads
Volo.Abp.Caching
Package Description
18
Volo.Abp.Caching
Package Description
17
Volo.Abp.Caching
Package Description
16
Volo.Abp.Caching
Package Description
15
Microsoft.Extensions.Caching.StackExchangeRedis
Distributed cache implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache using Redis. This package was built from the source code at https://github.com/dotnet/aspnetcore/tree/ada5ad97d2114250a05550cb28cc18b9cf9f8993
14

Version Downloads Last updated
10.1.0 3 12/13/2025
10.0.0 5 11/14/2025
9.10.0 6 10/17/2025
9.9.0 8 09/11/2025
9.8.0 8 08/14/2025
9.7.0 10 07/10/2025
9.6.0 10 07/08/2025
9.5.0 11 06/05/2025
9.4.0 12 05/05/2025
9.3.0 13 04/03/2025
9.2.0-preview.1.25105.6 14 02/27/2025
9.1.0-preview.1.25064.3 14 02/27/2025
9.0.0-preview.9.24556.5 12 02/27/2025
9.0.0-preview.9.24507.7 13 02/27/2025
9.0.0-preview.7.24406.2 14 02/27/2025
9.0.0-preview.6.24328.4 14 02/27/2025
9.0.0-preview.5.24306.11 13 02/27/2025
9.0.0-preview.4.24267.6 14 02/27/2025