ABP源码分析三十:ABP.RedisCache
2016-04-13 22:24
204 查看
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源码分析系列文章目录
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源码分析系列文章目录
相关文章推荐
- Java操作Redis数据库方法(简单)
- Redis+linux的集群(五)
- Linux下Redis安装及配置
- Java 使用 Redis
- Redis 数据类型
- Redis+linux的Bundle池化(四)
- Redis安装_Window+Linux
- Redis+linux自定义池化(三)
- Redis参数配置说明
- Redis+linux入门(二)
- redis启用持久化
- Redis - 事务
- Redis入门(一)
- Redis实现关注关系
- Redis实现秒杀系统
- Redis - pipelining(管道)
- Hadoop、Spark、HBase与Redis的适用性讨论
- spring-data-redis的使用优化
- 0026-redis服务安装
- Redis学习_01 windows下的环境搭建