摘要:EasyCaching 是一个开源的缓存库,旨在简化缓存的使用和管理。它提供了多种缓存提供程序,包括内存缓存(InMemory)、Redis、Memcached 和 SQLite 等。其中,EasyCaching.InMemory 是基于内存的缓存实现,适用于
EasyCaching 是一个开源的缓存库,旨在简化缓存的使用和管理。它提供了多种缓存提供程序,包括内存缓存(InMemory)、Redis、Memcached 和 SQLite 等。其中,EasyCaching.InMemory 是基于内存的缓存实现,适用于本地缓存场景。
第一步:安装包选择你需要的缓存提供程序,并通过 NuGet 安装它。
Install-Package EasyCaching.InMemoryEasyCaching的 NuGet 其他扩展包:
缓存提供程序• EasyCaching.Core:核心库,提供基本的缓存功能。
• EasyCaching.InMemory:内存缓存提供程序。
• EasyCaching.redis:基于 Redis 的分布式缓存提供程序。
• EasyCaching.Memcached:基于 Memcached 的分布式缓存提供程序。
• EasyCaching.SQLite:基于 SQLite 的缓存提供程序。
• EasyCaching.HybridCache:结合本地缓存和分布式缓存的混合缓存提供程序。
• EasyCaching.CSRedis:基于 CSRedis 的缓存提供程序。
• EasyCaching.FreeRedis:基于 FreeRedis 的缓存提供程序。
• EasyCaching.FasterKv:基于 FasterKv 的缓存提供程序。
• EasyCaching.Disk:基于磁盘的缓存提供程序。
• EasyCaching.LiteDB:基于 LiteDB 的缓存提供程序。
缓存拦截器• EasyCaching.Interceptor.Castle:使用 Castle 的缓存拦截器。
• EasyCaching.Interceptor.AspectCore:使用 AspectCore 的缓存拦截器。
序列化支持• EasyCaching.Serialization.MessagePack:基于 MessagePack 的序列化支持。
• EasyCaching.Serialization.Json:基于 Json 的序列化支持。
• EasyCaching.Serialization.SystemTextJson:基于 System.Text.Json 的序列化支持。
• EasyCaching.Serialization.Protobuf:基于 Protobuf 的序列化支持。
• EasyCaching.Serialization.MemoryPack:基于 MemoryPack 的序列化支持。
消息总线集成• EasyCaching.Bus.RabbitMQ:与 RabbitMQ 消息总线集成。
• EasyCaching.Bus.RabbitMQStream:与 RabbitMQ Stream 消息总线集成。
• EasyCaching.Bus.Redis:与 Redis 消息总线集成。
• EasyCaching.Bus.CSRedis:与 CSRedis 消息总线集成。
• EasyCaching.Bus.ConfluentKafka:与 Confluent Kafka 消息总线集成。
• EasyCaching.Bus.Zookeeper:与 Zookeeper 消息总线集成。
其他• EasyCaching.ResponseCaching:响应式缓存支持。
第二步:配置 Startup 类每个缓存提供程序都有自己的配置选项。以下是一个 InMemory 和 Redis 缓存提供程序的示例配置:
publicclassStartup{
publicvoidConfigureServices(IServiceCollection services)
{
services.AddEasyCaching(options =>
{
// 使用名为 "default" 的内存缓存
options.UseInMemory("default");
// 使用 Redis 缓存,命名为 "redis1"
options.UseRedis(config =>
{
config.DBConfig.Endpoints.Add(newServerEndPoint("127.0.0.1"6379));
},"redis1")
.WithMessagePack; // 使用 MessagePack 序列化
});
}
}第三步:在控制器中编写代码
以下是如何在控制器中使用缓存:
[Route("api/[controller]")]publicclassValuesController:Controller
{
privatereadonlyIEasyCachingProviderFactory _factory;
publicValuesController(IEasyCachingProviderFactory factory)
{
this._factory = factory;
}
[HttpGet]
publicasyncTaskstringHandle
{
// 获取名为 "redis1" 的缓存提供程序
varprovider = _factory.GetCachingProvider("redis1");
// 设置缓存
provider.Set("demo""123", TimeSpan.FromMinutes(1));
// 异步设置缓存
awaitprovider.SetAsync("demo""123"1));
return"缓存设置成功!";
}
}
EasyCaching.InMemory 是一个功能强大且易于使用的本地缓存解决方案,特别适合需要快速访问本地缓存数据的场景。通过简单的安装和配置,开发者可以轻松地将其集成到项目中,提升应用性能。
来源:opendotnet