编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

EasyCaching:让缓存更简单!

wxchong 2025-04-27 16:56:18 开源技术 7 ℃ 0 评论

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


基本使用

第一步:安装包

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

Install-Package EasyCaching.InMemory 

EasyCaching 的 NuGet 其他扩展包:

缓存提供程序

  • o EasyCaching.Core:核心库,提供基本的缓存功能。
  • o EasyCaching.InMemory:内存缓存提供程序。
  • o EasyCaching.Redis:基于 Redis 的分布式缓存提供程序。
  • o EasyCaching.Memcached:基于 Memcached 的分布式缓存提供程序。
  • o EasyCaching.SQLite:基于 SQLite 的缓存提供程序。
  • o EasyCaching.HybridCache:结合本地缓存和分布式缓存的混合缓存提供程序。
  • o EasyCaching.CSRedis:基于 CSRedis 的缓存提供程序。
  • o EasyCaching.FreeRedis:基于 FreeRedis 的缓存提供程序。
  • o EasyCaching.FasterKv:基于 FasterKv 的缓存提供程序。
  • o EasyCaching.Disk:基于磁盘的缓存提供程序。
  • o EasyCaching.LiteDB:基于 LiteDB 的缓存提供程序。

缓存拦截器

  • o EasyCaching.Interceptor.Castle:使用 Castle 的缓存拦截器。
  • o EasyCaching.Interceptor.AspectCore:使用 AspectCore 的缓存拦截器。

序列化支持

  • o EasyCaching.Serialization.MessagePack:基于 MessagePack 的序列化支持。
  • o EasyCaching.Serialization.Json:基于 Json 的序列化支持。
  • o EasyCaching.Serialization.SystemTextJson:基于 System.Text.Json 的序列化支持。
  • o EasyCaching.Serialization.Protobuf:基于 Protobuf 的序列化支持。
  • o EasyCaching.Serialization.MemoryPack:基于 MemoryPack 的序列化支持。

消息总线集成

  • o EasyCaching.Bus.RabbitMQ:与 RabbitMQ 消息总线集成。
  • o EasyCaching.Bus.RabbitMQStream:与 RabbitMQ Stream 消息总线集成。
  • o EasyCaching.Bus.Redis:与 Redis 消息总线集成。
  • o EasyCaching.Bus.CSRedis:与 CSRedis 消息总线集成。
  • o EasyCaching.Bus.ConfluentKafka:与 Confluent Kafka 消息总线集成。
  • o EasyCaching.Bus.Zookeeper:与 Zookeeper 消息总线集成。

其他

  • o EasyCaching.ResponseCaching:响应式缓存支持。

第二步:配置 Startup 类

每个缓存提供程序都有自己的配置选项。以下是一个 InMemory 和 Redis 缓存提供程序的示例配置:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddEasyCaching(options => 
        {
            // 使用名为 "default" 的内存缓存
            options.UseInMemory("default");

            // 使用 Redis 缓存,命名为 "redis1"
            options.UseRedis(config => 
            {
                config.DBConfig.Endpoints.Add(new ServerEndPoint("127.0.0.1", 6379));
            }, "redis1")
            .WithMessagePack(); // 使用 MessagePack 序列化
        });
    }
}

第三步:在控制器中编写代码

以下是如何在控制器中使用缓存:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    private readonly IEasyCachingProviderFactory _factory;

    public ValuesController(IEasyCachingProviderFactory factory)
    {
        this._factory = factory;
    }

    [HttpGet]
    public async Task<string> Handle()
    {
        // 获取名为 "redis1" 的缓存提供程序
        var provider = _factory.GetCachingProvider("redis1");

        // 设置缓存
        provider.Set("demo", "123", TimeSpan.FromMinutes(1));

        // 异步设置缓存
        await provider.SetAsync("demo", "123", TimeSpan.FromMinutes(1));

        return "缓存设置成功!";
    }
}

文档

详细的 EasyCaching 文档可以参考 官方文档


总结

EasyCaching.InMemory 是一个功能强大且易于使用的本地缓存解决方案,特别适合需要快速访问本地缓存数据的场景。通过简单的安装和配置,开发者可以轻松地将其集成到项目中,提升应用性能。

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏并分享给更多我们!让我们一起学习,共同进步!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表