分布式缓存是由多个应用服务器共享的缓存,一般做为外部服务在访问它的应用服务器上维护。 分布式缓存能够提升 ASP.NET Core 应用程序的性能和可伸缩性,尤为是在应用程序由云服务或服务器场托管时。html
Redis是一个高性能的 key-value 数据库。Redis性能极高,能读的速度是110000次/s,写的速度是81000次/s。redis
这里咱们不具体展开,你能够参考 https://www.runoob.com/redis/redis-install.html 按步骤进行安装。数据库
首先,咱们简单的建立一个控制器,实现一个简单方法,返回当前时间。咱们能够看到每次访问这个接口,均可以看到当前时间。api
[Route("api/[controller]")] [ApiController] public class CacheController : ControllerBase { [HttpGet] public string Get() { return DateTime.Now.ToString(); } }
而后,将Microsoft.Extensions.Caching.Redis的NuGet软件包安装到您的应用程序中。缓存
Microsoft.Extensions.Caching.Redis
接着,使用依赖关系注入从应用中引用的服务,在Startup类的ConfigureServices()方法中配置:服务器
public void ConfigureServices(IServiceCollection services) { // install-package Microsoft.Extensions.Caching.Redis services.AddDistributedRedisCache(options => { options.InstanceName = ""; options.Configuration = "127.0.0.1:6379"; }); }
接着,控制器的构造函数中请求IDistributedCache实例分布式
private IDistributedCache cache; public RedisCacheController(IDistributedCache cache) { this.cache = cache ?? throw new ArgumentNullException(nameof(cache)); }
最后,在Get方法中使用缓存函数
[HttpGet] public string Get() { //读取缓存 var now = cache.Get("cacheNow"); if (now == null) //若是没有该缓存 { cache.Set("cacheNow", Encoding.UTF8.GetBytes(DateTime.Now.ToString())); now = cache.Get("cacheNow"); return Encoding.UTF8.GetString(now); } else { return Encoding.UTF8.GetString(now); } }