microservice.toolkit.cachemanager 0.10.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package microservice.toolkit.cachemanager --version 0.10.1                
NuGet\Install-Package microservice.toolkit.cachemanager -Version 0.10.1                
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="microservice.toolkit.cachemanager" Version="0.10.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add microservice.toolkit.cachemanager --version 0.10.1                
#r "nuget: microservice.toolkit.cachemanager, 0.10.1"                
#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 microservice.toolkit.cachemanager as a Cake Addin
#addin nuget:?package=microservice.toolkit.cachemanager&version=0.10.1

// Install microservice.toolkit.cachemanager as a Cake Tool
#tool nuget:?package=microservice.toolkit.cachemanager&version=0.10.1                

Cache manager

The library is a work in progress. It is not yet considered production-ready.

Build Release License: MIT Nuget Nuget

Common interface to manage cache using different providers.

How to install

Package Manager

Install-Package microservice.toolkit.cachemanager -Version 0.10.1

.NET CLI

dotnet add package microservice.toolkit.cachemanager --version 0.10.1

Package Reference

<PackageReference Include="microservice.toolkit.cachemanager" Version="0.10.1" />

ICacheManager interface

bool Set(string, TValue, long);

Task<bool> Set<TValue>(string key, TValue value)

bool Set<TValue>(string, TValue);

Task<bool> Set<TValue>(string key, TValue value, long issuedAt)

Adds an entry in the cache provider without expiration time.

TValue Get(string);

Task<TValue> Get<TValue>(string key)

Delete(string);

Task<bool> Delete(string key);

Removed the entry from the cache provider.

Implementations

In memory

<a name="inmemory"></a> Naif version of an in-memory cache implementation.

How to use:

var manager = new InMemoryCacheManager();

You can specify value serializer, choose between "Newtonsoft JSON", "XML" and "System.Text.Json" (default).\

Newtonsoft JSON
Install Newtonsoft JSON dependency:

dotnet add package Newtonsoft.Json --version 13.0.2

And use the serializer:

var manager = new InMemoryCacheManager(new NewtonsoftJsonCacheValueSerializer());

System.Text.Json

var manager = new InMemoryCacheManager(new JsonCacheValueSerializer());

XML

var manager = new InMemoryCacheManager(new XmlCacheValueSerializer());

SQLite cache manager

<a name="sqlite"></a> To start using SQLite cache manager, first install the required package:

<PackageReference Include="Microsoft.Data.SQLite" Version="5.0.10" />

Create the table cache:

CREATE TABLE cache(
    id TEXT PRIMARY KEY,
    value TEXT NOT NULL,
    issuedAt INTEGER NOT NULL
);

And instantiate the cache manger:

var connectionManager = new SqliteConnection($"[CONNECTION_STRING]");
var manager = new SQLiteCacheManager(connectionManager);

You can specify value serializer, choose between "Newtonsoft JSON", "XML" and "System.Text.Json" (default).\

Newtonsoft JSON
Install Newtonsoft JSON dependency:

dotnet add package Newtonsoft.Json --version 13.0.2

And use the serializer:

var manager = new SQLiteCacheManager(connectionManager, new NewtonsoftJsonCacheValueSerializer());

System.Text.Json

var manager = new SQLiteCacheManager(connectionManager, new JsonCacheValueSerializer());

XML

var manager = new SQLiteCacheManager(connectionManager, new XmlCacheValueSerializer());

MySQL cache manager

<a name="mysql"></a> To start using MySql cache manager, first install the required package:

<PackageReference Include="MySqlConnector" Version="1.3.12" />

Create the table cache:

CREATE TABLE cache(
    id VARCHAR(256) PRIMARY KEY,
    value TEXT NOT NULL,
    issuedAt BIGINT NOT NULL
);

And instantiate the cache manger:

var connectionManager = new MySqlConnection($"[CONNECTION_STRING]");
var manager = new MysqlCacheManager(connectionManager);

You can specify value serializer, choose between "Newtonsoft JSON", "XML" and "System.Text.Json" (default).\

Newtonsoft JSON
Install Newtonsoft JSON dependency:

dotnet add package Newtonsoft.Json --version 13.0.2

And use the serializer:

var manager = new MysqlCacheManager(connectionManager, new NewtonsoftJsonCacheValueSerializer());

System.Text.Json

var manager = new MysqlCacheManager(connectionManager, new JsonCacheValueSerializer());

XML

var manager = new MysqlCacheManager(connectionManager, new XmlCacheValueSerializer());

Memcached

<a name="memcached"></a> To start using Memcached cache manager, first install the required package:

<PackageReference Include="Enyim.Memcached2" Version="0.6.8" />

How to use:

var manager = new MemcachedCacheManager("localhost:11211");

Or, if you are using a cluster:

var manager = new MemcachedCacheManager("localhost:11211,localhost:11212");

Redis

<a name="redis"></a> To start using Redis cache manager, first install the required package:

<PackageReference Include="StackExchange.Redis" Version="2.2.62" />

How to use:

var manager = new RedisCacheManager("localhost:6379");

You can specify value serializer, choose between "Newtonsoft JSON", "XML" and "System.Text.Json" (default).\

Newtonsoft JSON
Install Newtonsoft JSON dependency:

dotnet add package Newtonsoft.Json --version 13.0.2

And use the serializer:

var manager = new RedisCacheManager("localhost:6379", new NewtonsoftJsonCacheValueSerializer());

System.Text.Json

var manager = new RedisCacheManager("localhost:6379", new JsonCacheValueSerializer());

XML

var manager = new RedisCacheManager("localhost:6379", new XmlCacheValueSerializer());
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 is compatible.  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 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.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.0.1 96 7/30/2024
2.0.0 85 7/28/2024
1.1.1 104 7/19/2024
1.1.0 86 7/19/2024
1.0.0 94 6/10/2024
0.11.2 129 4/6/2024
0.11.1 108 3/30/2024
0.11.0 100 3/30/2024
0.10.2 258 3/15/2023
0.10.1 344 1/18/2023
0.10.0 294 1/11/2023
0.9.1 372 11/22/2022
0.9.0 373 11/16/2022
0.8.0 485 10/12/2022
0.7.0 451 4/28/2022
0.6.2 438 2/28/2022
0.6.1 427 2/21/2022
0.6.0 469 1/15/2022
0.5.0 294 12/8/2021
0.4.9 306 12/2/2021
0.4.8 305 12/2/2021
0.4.7 301 12/2/2021
0.4.6 311 12/1/2021
0.4.5 3,387 11/25/2021
0.4.4 295 11/2/2021
0.4.3 300 11/2/2021
0.4.2 386 10/27/2021
0.4.1 353 10/21/2021
0.4.0 489 10/3/2021