Skip to content

💥 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

Notifications You must be signed in to change notification settings

LabelZhou/EasyCaching

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 easier!

Coverage Status Member project of .NET Core Community GitHub license FOSSA Status

CI Build Status

Platform Build Server Master Status Dev Status
AppVeyor Windows/Linux Build status Build status
Travis Linux/OSX Build Status Build Status

Nuget Packages

Package Name Version Downloads
EasyCaching.Core
EasyCaching.InMemory
EasyCaching.Redis
EasyCaching.Memcached
EasyCaching.SQLite
EasyCaching.HybridCache
EasyCaching.CSRedis
EasyCaching.Interceptor.Castle
EasyCaching.Interceptor.AspectCore
EasyCaching.Serialization.MessagePack
EasyCaching.Serialization.Json
EasyCaching.Serialization.Protobuf
EasyCaching.Bus.RabbitMQ
EasyCaching.Bus.Redis
EasyCaching.Bus.CSRedis
EasyCaching.ResponseCaching

Basic Usages

Step 1 : Install the package

Choose one kinds of caching type that you needs and install it via Nuget.

Install-Package EasyCaching.InMemory
Install-Package EasyCaching.Redis
Install-Package EasyCaching.SQLite
Install-Package EasyCaching.Memcached

Step 2 : Config in your Startup class

Different types of caching hvae their own way to config.

Here is a sample show you how to config.

public class Startup
{
    //...
    
    public void ConfigureServices(IServiceCollection services)
    {
        //configuration
        services.AddEasyCaching(option=> 
        {
            //use memory cache that named default
            option.UseInMemory("default");

            //use redis cache that named redis1
            option.UseRedis(config => 
            {
                config.DBConfig.Endpoints.Add(new ServerEndPoint("127.0.0.1", 6379));
            }, "redis1")
            .WithMessagePack()//with messagepack serialization
            ;            
        });    
    }    
}

Step 3 : Write code in you controller

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // //when using single provider
    // private readonly IEasyCachingProvider _provider;
    //when using multiple provider
    private readonly IEasyCachingProviderFactory _factory;

    public ValuesController(
        //IEasyCachingProvider provider, 
        IEasyCachingProviderFactory factory
        )
    {
        //this._provider = provider;
        this._factory = factory;
    }

    [HttpGet]
    public string Handle()
    {
        //var provider = _provider;
        //get the provider from factory with its name
        var provider = _factory.GetCachingProvider("redis1");    

        //Set
        provider.Set("demo", "123", TimeSpan.FromMinutes(1));
            
        //Set Async
        await provider.SetAsync("demo", "123", TimeSpan.FromMinutes(1));                  
    }
}

Documentation

For more helpful information about EasyCaching, please click here for EasyCaching's documentation.

Examples

See sample

Todo List

Caching Providers

  • Memory
  • Redis(Based on StackExchange.Redis)
  • Redis(Based on csredis)
  • SQLite
  • Memcached
  • Hybrid(Combine local caching and distributed caching)
  • Disk
  • Others...

Basic Caching API

  • Get/GetAsync(with data retriever)
  • Get/GetAsync(without data retriever)
  • Set/SetAsync
  • Remove/RemoveAsync
  • Refresh/RefreshAsync
  • RemoveByPrefix/RemoveByPrefixAsync
  • SetAll/SetAllAsync
  • GetAll/GetAllAsync
  • GetByPrefix/GetByPrefixAsync
  • RemoveAll/RemoveAllAsync
  • GetCount
  • Flush/FlushAsync
  • TrySet/TrySetAsync
  • Others...

Serializer Extensions

  • BinaryFormatter
  • MessagePack
  • Json
  • ProtoBuf
  • Others...

Caching Interceptor

  • AspectCore
  • Castle
  • Others ..
  1. EasyCachingAble
  2. EasyCachingPut
  3. EasyCachingEvict

Note: Not support Hybird Caching provider yet.

Caching Bus

Others

  • Configuration
  • Caching Region (one region with an instance of provider)
  • Caching Statistics
  • UI Manager
  • Logger
  • Caching Warm Up
  • ...

Contributing

Pull requests, issues and commentary!

License

FOSSA Status

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!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.8%
  • Batchfile 0.2%