- Notifications
You must be signed in to change notification settings - Fork328
💥 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 easier!
License
dotnetcore/EasyCaching
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.InMemoryInstall-Package EasyCaching.RedisInstall-Package EasyCaching.SQLiteInstall-Package EasyCaching.MemcachedInstall-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 foundhere.
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, ... |
Seesample
SeeToDo List
Pull requests, issues and commentary!
About
💥 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 easier!