写点什么

Util 应用框架基础(七)- 二级缓存

作者:何镇汐
  • 2023-11-21
    四川
  • 本文字数:1109 字

    阅读完需:约 4 分钟

二级缓存

Util 应用框架二级缓存操作

本节介绍 Util 应用框架如何配置 2 级缓存.

概述

EasyCaching 支持 2 级缓存操作.

2 级缓存可以让你的项目从本地缓存中获取数据,这样可以获得很高的读取性能.

当本地缓存过期,本地缓存会请求 Redis 分布式缓存,Redis 缓存从数据库读取最新数据,并更新本地缓存.

Redis 还充当事件总线的角色,每当数据更新,通过 Redis 总线发布事件,同步更新所有本地缓存副本,解决了本地缓存更新困难的难题.

配置二级缓存

  • 引用 Nuget 包

Nuget 包名: Util.Caching.EasyCaching

  • AddHybridCache

使用 AddHybridCache 扩展方法启用 2 级缓存.

  • 最简单的配置方法不带参数,设置以下默认值.


  • TopicName 设置为 EasyCachingHybridCache.

TopicName 是 Redis 总线发布事件的主题名称.

启用 2 级缓存之前,应先配置本地缓存和 Redis 缓存.

范例:

var builder = WebApplication.CreateBuilder( args );builder.AsBuild()  .AddMemoryCache()  .AddRedisCache( "127.0.0.1" )  .AddHybridCache(); 
复制代码

如果要修改 TopicName,传入主题参数,如下所示.

builder.AsBuild()  .AddMemoryCache()  .AddRedisCache( "127.0.0.1" )  .AddHybridCache( "topic" ); 
复制代码
  • 使用 IConfiguration 进行配置.


可以使用 appsettings.json 文件进行配置.


builder.AsBuild()  .AddMemoryCache()  .AddRedisCache( "127.0.0.1" )  .AddHybridCache( builder.Configuration );
复制代码

除了需要配置 2 级缓存提供程序,还需要配置 Redis 总线.默认配置节名称:

  • 2 级缓存默认配置节名称: EasyCaching:Hybrid


  • Redis 总线配置节名称: EasyCaching:RedisBus


appsettings.json 配置文件示例.

 {  "EasyCaching": {    "Hybrid": {      "LocalCacheProviderName": "DefaultInMemory",      "DistributedCacheProviderName": "DefaultRedis",      "TopicName": "EasyCachingHybridCache"    },    "RedisBus": {      "Endpoints": [        {          "Host": "localhost",          "Port": 6739        }      ],      "SerializerName": "SystemTextJson"    }  }} 
复制代码
  • 使用委托进行配置.


builder.AsBuild()  .AddMemoryCache()  .AddRedisCache( "127.0.0.1" )  .AddHybridCache( hybridOptions => {    hybridOptions.LocalCacheProviderName = "DefaultInMemory";    hybridOptions.DistributedCacheProviderName = "DefaultRedis";    hybridOptions.TopicName = "topic";  }, redisBusOptions => {      redisBusOptions.Endpoints.Add( new ServerEndPoint( "127.0.0.1", 6379 ) );      redisBusOptions.SerializerName = "SystemTextJson";  } ) 
复制代码
  • 配置参数

EasyCaching Redis 缓存提供了多个配置参数,具体请参考 EasyCaching 文档.

用户头像

何镇汐

关注

15年以上.Net开发经验,擅长代码封装 2023-11-01 加入

15年以上.Net开发经验,擅长代码封装,主要作品为Util应用框架

评论

发布
暂无评论
Util应用框架基础(七)- 二级缓存_开源_何镇汐_InfoQ写作社区