14. 分布式缓存
14.1 什么是缓存
缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。 缓存适用于不经常更改的数据,因为生成成本很高。 通过缓存,可比从数据源返回数据的副本速度快得多。 应该对应用进行编写和测试,使其不要永远依赖于缓存的数据。
14.2 缓存类型
- 内存缓存:顾名思义,就是缓存在应用部署所在服务器的内存中
- 分布式缓存:分布式缓存是由多个应用服务器共享的缓存
- 响应缓存:缓存服务器端
Not Modified
的数据
14.3 内存缓存使用
内存缓存是最常用的缓存方式,具有存取快,效率高特点。
内存缓存通过注入 IMemoryCache
方式注入即可。
备注
在 Furion
框架中,内存缓存服务已经默认注册,无需手动注册。
14.3.1 基本使用
如,缓存当前时间:
using Furion.DynamicApiController;
using Microsoft.Extensions.Caching.Memory;
using System;
namespace Furion.Application
{
public class CacheServices : IDynamicApiController
{
private const string _timeCacheKey = "cache_time";
private readonly IMemoryCache _memoryCache;
public CacheServices(IMemoryCache memoryCache)
{
_memoryCache = memoryCache;
}
[ApiDescriptionSettings(KeepName = true)]
public DateTimeOffset GetOrCreate()
{
return _memoryCache.GetOrCreate(_timeCacheKey, entry =>
{
return DateTimeOffset.UtcNow;
});
}
}
}