EasyCaching is an open-source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easily!
| Platform | Build Server | Master Status | Dev Status |
|---|---|---|---|
| Github Action | Linux/Windows |
Choose caching provider that you need and install it via Nuget.
Install-Package EasyCaching.InMemory
Install-Package EasyCaching.Redis
Install-Package EasyCaching.SQLite
Install-Package EasyCaching.Memcached
Install-Package EasyCaching.FasterKv
Each caching provider has it's own configuration options.
Here is a sample configuration for InMemory and Redis caching provider.
publicclassStartup{//...publicvoidConfigureServices(IServiceCollectionservices){//configurationservices.AddEasyCaching(options =>{//use memory cache that named defaultoptions.UseInMemory("default");// // use memory cache with your own configuration// options.UseInMemory(config => // {// config.DBConfig = new InMemoryCachingOptions// {// // scan time, default value is 60s// ExpirationScanFrequency = 60, // // total count of cache items, default value is 10000// SizeLimit = 100 // };// // the max random second will be added to cache's expiration, default value is 120// config.MaxRdSecond = 120;// // whether enable logging, default is false// config.EnableLogging = false;// // mutex key's alive time(ms), default is 5000// config.LockMs = 5000;// // when mutex key alive, it will sleep some time, default is 300// config.SleepMs = 300;// }, "m2");//use redis cache that named redis1options.UseRedis(config =>{config.DBConfig.Endpoints.Add(newServerEndPoint("127.0.0.1",6379));},"redis1").WithMessagePack()//with messagepack serialization;});}}[Route("api/[controller]")]publicclassValuesController:Controller{// //when using single provider// private readonly IEasyCachingProvider _provider;//when using multiple providerprivatereadonlyIEasyCachingProviderFactory_factory;publicValuesController(//IEasyCachingProvider provider, IEasyCachingProviderFactoryfactory){//this._provider = provider;this._factory=factory;}[HttpGet]publicstringHandle(){//var provider = _provider;//get the provider from factory with its namevarprovider=_factory.GetCachingProvider("redis1");//Setprovider.Set("demo","123",TimeSpan.FromMinutes(1));//Set Asyncawaitprovider.SetAsync("demo","123",TimeSpan.FromMinutes(1));}}Detailed EasyCaching documentation can be found here.
| Package Name | Downloads | Description |
|---|---|---|
| EasyCaching.Extensions.EasyCompressor | Compress your cache objects to speedup transferring data over network, reduce bandwidth usage, and memory usage of cache server | |
| EasyCaching.Extensions | EasyCaching integration for CAP, WebApiClient, IDistributedCache, ... |
See sample
See ToDo List
Pull requests, issues and commentary!