microservice.toolkit.cachemanager
2.0.1
dotnet add package microservice.toolkit.cachemanager --version 2.0.1
NuGet\Install-Package microservice.toolkit.cachemanager -Version 2.0.1
<PackageReference Include="microservice.toolkit.cachemanager" Version="2.0.1" />
paket add microservice.toolkit.cachemanager --version 2.0.1
#r "nuget: microservice.toolkit.cachemanager, 2.0.1"
// Install microservice.toolkit.cachemanager as a Cake Addin #addin nuget:?package=microservice.toolkit.cachemanager&version=2.0.1 // Install microservice.toolkit.cachemanager as a Cake Tool #tool nuget:?package=microservice.toolkit.cachemanager&version=2.0.1
Cache manager
Common interface to manage cache using different providers.
How to install
Package Manager
Install-Package microservice.toolkit.cachemanager -Version 2.0.1
.NET CLI
dotnet add package microservice.toolkit.cachemanager --version 2.0.1
Package Reference
<PackageReference Include="microservice.toolkit.cachemanager" Version="2.0.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();
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 dbConnection = new SqliteConnection($"[CONNECTION_STRING]");
var manager = new SQLiteCacheManager(dbConnection);
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(dbConnection, new NewtonsoftJsonCacheValueSerializer());
System.Text.Json
var manager = new SQLiteCacheManager(dbConnection, new JsonCacheValueSerializer());
XML
var manager = new SQLiteCacheManager(dbConnection, 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 dbConnection = new MySqlConnection($"[CONNECTION_STRING]");
var manager = new MysqlCacheManager(dbConnection);
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(dbConnection, new NewtonsoftJsonCacheValueSerializer());
System.Text.Json
var manager = new MysqlCacheManager(dbConnection, new JsonCacheValueSerializer());
XML
var manager = new MysqlCacheManager(dbConnection, 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 | Versions 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 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 is compatible. 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. |
-
.NETStandard 2.0
- microservice.toolkit.connection.extensions (>= 2.0.1)
- microservice.toolkit.core (>= 2.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.Text.Json (>= 8.0.4)
-
net8.0
- microservice.toolkit.connection.extensions (>= 2.0.1)
- microservice.toolkit.core (>= 2.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.Text.Json (>= 8.0.4)
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 |