Senparc.CO2NET icon indicating copy to clipboard operation
Senparc.CO2NET copied to clipboard

Senparc.CO2NET.Cache.CsRedis bug

Open zhulj opened this issue 2 years ago • 3 comments

就不翻译英文了.

Senparc.CO2NET/src/Senparc.CO2NET.Cache.CsRedis/ObjectCacheStrategy/BaseRedisObjectCacheStrategy.cs 行38 Client = new CSRedis.CSRedisClient(Config.SenparcSetting.Cache_Redis_Configuration); 应该用 Client = new CSRedis.CSRedisClient(RedisManager.ConfigurationOption);

否则 Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(redisConnection); 连接配置无法生效 都是调用空配置

zhulj avatar May 12 '22 16:05 zhulj

这个修改是不需要的: 第一,Config.SenparcSetting.Cache_Redis_Configuration 在初始化的时候已经从 appsettings.json 里面取值了(除非你没有按照标准初始化)。 第二,看一下这里的静态构造函数 static BaseRedisObjectCacheStrategy(),里面已经有赋值:

RedisManager.ConfigurationOption = Config.SenparcSetting.Cache_Redis_Configuration;

所以正常情况下,即使你用了 RedisManager.ConfigurationOption,值也是和 Config.SenparcSetting.Cache_Redis_Configuration相等的。

感谢交流!

JeffreySu avatar May 14 '22 15:05 JeffreySu

微信的所有配置都是从DB取值 ,SenparcWeixinSetting 基本上没用到; 缓存从以下配置设置 Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(redisConnection); Senparc.CO2NET.Cache.CsRedis.Register.UseKeyValueRedisNow(); + app.UseSenparcGlobal(env,null, { register.UseSenparcWeixinCacheCsRedis(); }); 就可以启用 这配置在MP AccessToken/JsapiToken 可以正常使用 可是为于MessageHandler 上下文缓存不能生效

zhulj avatar May 16 '22 06:05 zhulj

MessageHandler 的缓存也是依赖于整体缓存策略的,所以需要按照 Sample 提供的注册过程,完整注册下来。否则默认就是用内存缓存。

JeffreySu avatar May 18 '22 14:05 JeffreySu