Pomelo.Extensions.Caching.MySqlConfig.Tools 2.2.0

dotnet tool install --global Pomelo.Extensions.Caching.MySqlConfig.Tools --version 2.2.0                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Pomelo.Extensions.Caching.MySqlConfig.Tools --version 2.2.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Pomelo.Extensions.Caching.MySqlConfig.Tools&version=2.2.0                
nuke :add-package Pomelo.Extensions.Caching.MySqlConfig.Tools --version 2.2.0                

Caching-MySQL

AppVeyor build status NuGet

Basing on https://learn.microsoft.com/en-us/aspnet/core/performance/caching/distributed and modified accordingly:

Distributed MySQL Server Cache

The Distributed MySQL Server Cache implementation (AddDistributedMySqlCache) allows the distributed cache to use a MySQL Server database as its backing store. To create a MySQL Server cached item table in a MySQL Server instance, you can use the dotnet-mysql-cache tool. The tool creates a table with the name and schema that you specify.

Create a table in MySQL Server by running the dotnet mysql-cache create command. Provide the MySQL Server connection string, instance (for example server=192.169.0.1), table name (for example, NewTableName) and optional database (for example, MyDatabaseName):

dotnet mysql-cache create "server=192.169.0.1;user id=userName;password=P4ssword123!;port=3306;database=MyDatabaseName;Allow User Variables=True" "NewTableName" --databaseName "MyDatabaseName"

A message is logged to indicate that the tool was successful:

Table and index were created successfully.

The table created by the dotnet-mysql-cache tool has the following schema:

MySQL Server Cache Table

[!NOTE] An app should manipulate cache values using an instance of IDistributedCache, not any other.

The example snippet how to implement MySql Server cache in Program.cs:

builder.Services.AddDistributedMySqlCache(options =>
{
    options.ConnectionString = builder.Configuration.GetConnectionString("DistCache_ConnectionString");
    options.SchemaName = "MyDatabaseName";  //optional
    options.TableName = "NewTableName";     //required
});

[!NOTE] A ConnectionString (and optionally, SchemaName and TableName) are typically stored outside of source control (for example, stored by the Secret Manager or in appsettings.json/appsettings.{Environment}.json files). The connection string may contain credentials that should be kept out of source control systems.

Use the distributed cache

One can use same technique as described in this section Use the distributed cache

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2.2.0 344 5/17/2024
2.1.1 560 4/17/2023
2.1.0 729 12/6/2020
2.0.3 1,139 4/20/2020
2.0.2 702 2/26/2019
2.0.1 796 12/9/2018
2.0.0-final 834 3/13/2018
1.0.0-preview2-final 2,055 7/26/2017
1.0.0-preview1-final 783 7/25/2017