EasyCaching:让缓存更简单!

B站影视 日本电影 2025-04-10 22:42 2

摘要:EasyCaching 是一个开源的缓存库,旨在简化缓存的使用和管理。它提供了多种缓存提供程序,包括内存缓存(InMemory)、Redis、Memcached 和 SQLite 等。其中,EasyCaching.InMemory 是基于内存的缓存实现,适用于

EasyCaching 是一个开源的缓存库,旨在简化缓存的使用和管理。它提供了多种缓存提供程序,包括内存缓存(InMemory)、Redis、Memcached 和 SQLite 等。其中,EasyCaching.InMemory 是基于内存的缓存实现,适用于本地缓存场景。

第一步:安装包

选择你需要的缓存提供程序,并通过 NuGet 安装它。

Install-Package EasyCaching.InMemory

EasyCaching的 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

相关推荐