zoukankan      html  css  js  c++  java
  • ABP源码分析三十:ABP.RedisCache

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

     

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

     

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

     

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

     

     

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

     

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

     

     

    如何启用RedisCache呢?

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

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

  • 相关阅读:
    DPDK — 网卡初始化流程(Intel 82599 ixgbe 网卡驱动示例)
    leetcode 3. 无重复字符的最长子串
    20193120 实验四 Python综合实践
    hadoop常用的端口号
    Django学习笔记
    ORACLE EBS AP invoice 到付款的数据流
    EBS 系统标准职责定义MAP
    Advanced Pricing
    Oracle Advanced Pricing White Papers
    增加AP INVOICE 行&分配行
  • 原文地址:https://www.cnblogs.com/1zhk/p/5389057.html
Copyright © 2011-2022 走看看