DefaultFasterKvCachingProvider
FasterKv is a hybrid memory and disk Kv Store, so it can support much larger data storage than memory.
EasyCaching.FasterKv is a lib that is based on EasyCaching.Core and Microsoft.FASTER.Core.
How to use ?
1. Install the package via Nuget
Install-Package EasyCaching.FasterKv
2. Config in Startup class
public class Startup
{
//...
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddEasyCaching(option =>
{
//use fasterkv cache
option.UseFasterKv(config =>
{
// fasterKv must be set SerializerName
config.SerializerName = "msg";
})
.WithMessagePack("msg");
});
}
}
3. Call the EasyCachingProvider
The following code show how to use EasyCachingProvider in ASP.NET Core Web API.
[Route("api/[controller]")]
public class ValuesController : Controller
{
private readonly IEasyCachingProvider _provider;
public ValuesController(IEasyCachingProvider provider)
{
this._provider = provider;
}
[HttpGet]
public string Get()
{
//Remove
_provider.Remove("demo");
//Set
_provider.Set("demo", "123", TimeSpan.FromMinutes(1));
//Get
var res = _provider.Get("demo", () => "456", TimeSpan.FromMinutes(1));
//Get without data retriever
var res = _provider.Get<string>("demo");
//Remove Async
await _provider.RemoveAsync("demo");
//Set Async
await _provider.SetAsync("demo", "123", TimeSpan.FromMinutes(1));
//Get Async
var res = await _provider.GetAsync("demo",async () => await Task.FromResult("456"), TimeSpan.FromMinutes(1));
//Get without data retriever Async
var res = await _provider.GetAsync<string>("demo");
}
}