[]
获取缓存
设置缓存并指定缓存过期时间
获取数据时比较耗时,如数据库查询或请求第三方Web服务
此数据应该是修改不频繁或对数据的实时性要求不高
缓存服务端在默认情况下使用 MemoryCache, 在负载均衡模式下会自动使用 Radis 数据库。
应用程序服务会在活字格启动时注册到Asp.net 的服务容器中,使用时只需要通过GetService方法即可获取。
using GrapeCity.Forguncy.ServerApi;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
namespace MyPlugin.Server
{
internal class MyPluginMiddleware
{
private readonly RequestDelegate _next;
public MyPluginMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
if (context.Request.Path.Value == "/MyPluginMiddleware")
{
var cacheService = context.RequestServices.GetService<ICacheService>();
var key = "MyCacheKey";
if (cacheService.Exists(key))
{
// 判断要获取的数据在缓存中存在则直接返回
await context.Response.WriteAsync(cacheService.Get(key).ToString());
}
// 获取数据
var cacheValue = "testValue";
cacheService.Add(key, cacheValue, TimeSpan.FromSeconds(100)); // 添加到缓存中,100秒之后缓存会自动过期
await context.Response.WriteAsync(cacheValue);
return;
}
await _next(context);
}
}
}
大于等于活字格9.0.100.0版本。