https://github.com/victortzeng/aspectcore.extensions.cache
A redis & memory cache middleware using AspectCore-Framework & CSRedisCore.
https://github.com/victortzeng/aspectcore.extensions.cache
Last synced: 7 months ago
JSON representation
A redis & memory cache middleware using AspectCore-Framework & CSRedisCore.
- Host: GitHub
- URL: https://github.com/victortzeng/aspectcore.extensions.cache
- Owner: VictorTzeng
- License: mit
- Created: 2019-05-13T07:07:26.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T14:51:15.000Z (almost 3 years ago)
- Last Synced: 2025-03-22T02:21:44.662Z (7 months ago)
- Language: C#
- Homepage:
- Size: 50.8 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://dev.azure.com/v-xiaze0473/v-xiaze/_build/latest?definitionId=3&branchName=master)
# Introduction
A redis & memory cache middleware using [AspectCore-Framework](https://github.com/dotnetcore/AspectCore-Framework) & [csredis](https://github.com/2881099/csredis).# How to use
* In dotnetcore 3.0, we must configure Program.cs:
```
using AspectCore.Extensions.DependencyInjection;// import this namespace
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
})
// for aspcectcore
.UseServiceProviderFactory(new AspectCoreServiceProviderFactory())
;
}
```* 1. configure services in StartUp.cs:
```
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddAspectCoreMemoryCache();
services.AddAspectCoreRedisCache("your redis connetion string");
return services.BuildServiceProvider();
}
```
* 2. declare an inteface.CacheKey -> default value : {namespace}{class}{method}{params hashcode}
Expiration -> default value : 600 (seconds)
```
public interface ISysMenuRepository:IRepository
{
[Cached(CacheKey = "Redis_Cache_SysMenu", Expiration = 5)]
IList GetMenusByCache(Expression> where);
}
```
* 3. declare an implement class
```
public class SysMenuRepository : BaseRepository, ISysMenuRepository
{
public IList GetMenusByCache(Expression> @where)
{
return DbContext.Get(where, true).ToList();
}
}
```