ABP 通过StackExchange.Redis类库来操作Redis数据库。

AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入)

AbpRedisCacheConfig:定义了connectionStringKey和databaseIdAppSetting的值。这两个值对象redis 在web.config中的key值。 ABP.RedisCache模块通过读取web.config来获取redis的配置。

IAbpRedisConnectionProvider/AbpRedisConnectionProvider:从web.config中读取Redis的connectionstring信息,并通过connectionstring生成ConnectionMultiplexer对象。AbpRedisConnectionProvider是一个单例实现,并且将ConnectionMultiplexer对象保存在其本地的Dictionary中,避免反复创建。

AbpRedisCache : 继承自Abp核心库中的 CacheBase,通过IAbpRedisConnectionProvider对象返回的ConnectionMultiplexer对象操作redis数据库。

AbpRedisCacheManager:重写了CacheManagerBase的CreateCacheImplementation方法,该方法用于创建真实的Icache对象。 具体到AbpRedisCacheManager就是创建AbpRedisCache。

如何启用RedisCache呢?

默认情况下ABP是将AbpMemoryCacheManager注入到容器中的(是在ABPKernelModule的initalize方法中完成的)。所以我们要让AbpRedisCacheManager先于AbpMemoryCacheManager注入到容器中,这样castle 在resolve系统中的ICacheManager的时候就会优先取得AbpRedisCacheManager。方法只有一个,就是在你的web项目的**Module的PreInitialize中完成AbpRedisCacheManager的register(因为ABP是在完成所有moudle类的PreInitialize方法后,才执行各个Module的initalize方法的)。

返回ABP源码分析系列文章目录

【转】ABP源码分析三十:ABP.RedisCache相关推荐

  1. ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  2. 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析

    动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能, ...

  3. 【转】ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  4. ABP源码分析三十:ABP.RedisCache

    ABP 通过StackExchange.Redis类库来操作Redis数据库. AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRed ...

  5. 【转】ABP源码分析三十九:ABP.Hangfire

    ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...

  6. 【转】ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  7. 【转】ABP源码分析三十二:ABP.SignalR

    Realtime Realtime是ABP底层模块提供的功能,用于管理在线用户.它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在 ...

  8. ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  9. 【转】ABP源码分析三:ABP Module

    Abp是基于模块化设计思想进行构建的.开发人员可以将自定义的功能以模块(module)的形式集成到ABP中.具体的功能都可以设计成一个单独的Module.Abp底层框架提供便捷的方法集成每个Modul ...

最新文章

  1. 【干货】2020史上最全自动驾驶资源大合集!
  2. chrome正受到自动软件的控制_谷歌优化Chrome Omnibox自动完成功能 使其更加智能
  3. ceph-deploy mod add_我的世界基座(Pedestals)Mod
  4. 离散信号经过FFT处理后,幅度,相位,功率的计算
  5. 彻底搞清楚javascript中的require、import和export
  6. 常用公有云接入——谷歌
  7. Python学习-03(集合,文件,编码)
  8. SQLServer 条件查询语句大全
  9. build.gradle配置参数详解
  10. 计算机病毒主要以存储介质和计算机网络为媒介进行传播,计算机病毒主要以存储介质和计算机网络为媒介进行传播。...
  11. mysql查询字段转型_mysql转型
  12. 【花朵识别】基于matlab模板匹配花朵分类【含Matlab源码 472期】
  13. 51单片机最小系统的检查
  14. hb100 微波雷达arduino_HB100微波雷达模块无线X波段雷达探测器探头传感器模块10.525GHz...
  15. phpspider PHP 爬虫
  16. FPGA vs ASIC
  17. 学习插画前期需要什么基础知识?插画师入门基础先学什么?
  18. 《论文阅读》Knowledge-Enriched Transformer for Emotion Detection in Textual Conversations
  19. 【MW】Drop Materialized View Hangs with 'Enq: JI - Contention'
  20. 在机器学习or深度学习中引入先验知识

热门文章

  1. 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码
  2. spring----IOC知识点
  3. SpingBoot+Mybaits+Vue,更新学习
  4. LOJ#6002. 「网络流 24 题」最小路径覆盖
  5. spring depends-on 不起作用
  6. 996. Number of Squareful Arrays
  7. [dp] LeetCode 91. Decode Ways
  8. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御
  9. [Leetcode][第1143题][JAVA][最长公共子序列][LCS][动态规划]
  10. Java集合容器面试题