Distributed cache implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache using MySql.
$ dotnet add package Pomelo.Extensions.Caching.MySqlBasing on https://learn.microsoft.com/en-us/aspnet/core/performance/caching/distributed and modified accordingly:
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.
CLI tool (globally) can be done with
dotnet tool install --global Pomelo.Extensions.Caching.MySqlConfig.Tools
Now, 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:

[!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}.jsonfiles). The connection string may contain credentials that should be kept out of source control systems.
One can use same technique as described in this section Use the distributed cache