Common interface to manage cache using different providers.
$ dotnet add package microservice.toolkit.cachemanagerThe library is a work in progress. It is not yet considered production-ready.
Common interface to manage cache using different providers.
Install-Package microservice.toolkit.cachemanager -Version 0.11.1
dotnet add package microservice.toolkit.cachemanager --version 0.11.1
<PackageReference Include="microservice.toolkit.cachemanager" Version="0.11.1" />
Task<bool> Set<TValue>(string key, TValue value)Task<bool> Set<TValue>(string key, TValue value, long issuedAt)Adds an entry in the cache provider without expiration time.
Task<TValue> Get<TValue>(string key)Task<bool> Delete(string key);Removed the entry from the cache provider.
<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());<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());<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());<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");<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());