HybridRedisCache 1.0.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package HybridRedisCache --version 1.0.5
NuGet\Install-Package HybridRedisCache -Version 1.0.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HybridRedisCache" Version="1.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HybridRedisCache --version 1.0.5
#r "nuget: HybridRedisCache, 1.0.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install HybridRedisCache as a Cake Addin
#addin nuget:?package=HybridRedisCache&version=1.0.5

// Install HybridRedisCache as a Cake Tool
#tool nuget:?package=HybridRedisCache&version=1.0.5

NuGet NuGet Generic badge Generic badge

HybridRedisCache

HybridRedisCache is a simple in-memory and Redis hybrid caching solution for .NET applications. It provides a way to cache frequently accessed data in memory for fast access and automatically falls back to using Redis as a persistent cache when memory cache capacity is exceeded.

Installation

You can install the HybridRedisCache package using NuGet:

PM> Install-Package HybridRedisCache

Usage

To use HybridCache, you can create an instance of the HybridCache class and then call its Set and Get methods to cache and retrieve data, respectively. Here's an example:

using HybridRedisCache;

...

// Create a new instance of HybridCache with cache options
var options = new HybridCachingOptions()
{
    DefaultLocalExpirationTime = TimeSpan.FromMinutes(1),
    DefaultDistributedExpirationTime = TimeSpan.FromDays(1),
    InstanceName = "SampleApp",
    ThrowIfDistributedCacheError = true,
    RedisCacheConnectString = "localhost:6379",
    BusRetryCount = 10,
    EnableLogging = true,
    FlushLocalCacheOnBusReconnection = true,
};
var cache = new HybridCache(options);

// Cache a string value with key "mykey" for 1 minute
cache.Set("mykey", "myvalue", TimeSpan.FromMinutes(1));

// Retrieve the cached value with key "mykey"
var value = cache.Get<string>("mykey");

Features

HybridCache is a caching library that provides a number of advantages over traditional in-memory caching solutions. One of its key features is the ability to persist caches between instances and sync data for all instances.

With HybridCache, you can create multiple instances of the cache that share the same Redis cache, allowing you to scale out your application and distribute caching across multiple instances. This ensures that all instances of your application have access to the same cached data, regardless of which instance originally created the cache.

When a value is set in the cache using one instance, the cache invalidation message is sent to all other instances, ensuring that the cached data is synchronized across all instances. This allows you to take advantage of the benefits of caching, such as reduced latency and improved performance, while ensuring that the cached data is consistent across all instances.

Other features of HybridCache include:

  • Support for multiple cache layers, including in-memory and Redis caching layers
  • Automatic expiration of cached data based on time-to-live (TTL) or sliding expiration policies
  • Support for fire-and-forget caching, which allows you to quickly set a value in the cache without waiting for a response
  • Support for asynchronous caching operations, which allows you to perform cache operations asynchronously and improve the responsiveness of your application

Overall, HybridCache provides a powerful and flexible caching solution that can help you improve the performance and scalability of your applications, while ensuring that the cached data is consistent across all instances.

Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request. If you'd like to contribute to HybridRedisCache, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Make your changes and commit them.
  4. Push your changes to your fork.
  5. Submit a pull request.

License

HybridRedisCache is licensed under the Apache License, Version 2.0. See the LICENSE file for more information.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 is compatible. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.3.1 112 4/27/2024
2.2.4 473 1/15/2024
2.2.3 136 1/3/2024
2.2.2 107 1/3/2024
2.2.1 104 1/3/2024
2.2.0 108 1/3/2024
2.1.0 121 12/31/2023
2.0.2 124 12/18/2023
2.0.1 114 12/12/2023
2.0.0 105 12/9/2023
1.9.0 112 12/8/2023
1.8.0 101 12/6/2023
1.6.0 112 12/4/2023
1.5.0 148 10/31/2023
1.4.0 124 10/15/2023
1.3.1 111 10/8/2023
1.3.0 101 9/10/2023
1.2.4 202 5/7/2023
1.2.3 117 5/5/2023
1.2.2 109 5/5/2023
1.2.1 108 5/5/2023
1.2.0 111 5/5/2023
1.1.1 112 5/4/2023
1.1.0 125 5/3/2023
1.0.9 130 5/1/2023
1.0.8 130 5/1/2023
1.0.7 129 4/30/2023
1.0.6 123 4/29/2023
1.0.5 129 4/29/2023
1.0.4 131 4/28/2023
1.0.3 135 4/28/2023
1.0.2 146 4/17/2023
1.0.1 141 4/16/2023
1.0.0 142 4/16/2023

Seperate expiration of local and distributed caches