【转】ABP源码分析三十:ABP.RedisCache
ABP?通過StackExchange.Redis類庫來操作Redis數(shù)據(jù)庫。
?
AbpRedisCacheModule:完成ABP.RedisCache模塊的初始化(完成常規(guī)的依賴注入)
?
AbpRedisCacheConfig:定義了connectionStringKey和databaseIdAppSetting的值。這兩個(gè)值對(duì)象redis?在web.config中的key值。?ABP.RedisCache模塊通過讀取web.config來獲取redis的配置。
?
IAbpRedisConnectionProvider/AbpRedisConnectionProvider:從web.config中讀取Redis的connectionstring信息,并通過connectionstring生成ConnectionMultiplexer對(duì)象。AbpRedisConnectionProvider是一個(gè)單例實(shí)現(xiàn),并且將ConnectionMultiplexer對(duì)象保存在其本地的Dictionary中,避免反復(fù)創(chuàng)建。
?
?
AbpRedisCache?:?繼承自Abp核心庫中的?CacheBase,通過IAbpRedisConnectionProvider對(duì)象返回的ConnectionMultiplexer對(duì)象操作redis數(shù)據(jù)庫。
?
AbpRedisCacheManager:重寫了CacheManagerBase的CreateCacheImplementation方法,該方法用于創(chuàng)建真實(shí)的Icache對(duì)象。?具體到AbpRedisCacheManager就是創(chuàng)建AbpRedisCache。
?
?
如何啟用RedisCache呢?
默認(rèn)情況下ABP是將AbpMemoryCacheManager注入到容器中的(是在ABPKernelModule的initalize方法中完成的)。所以我們要讓AbpRedisCacheManager先于AbpMemoryCacheManager注入到容器中,這樣castle?在resolve系統(tǒng)中的ICacheManager的時(shí)候就會(huì)優(yōu)先取得AbpRedisCacheManager。方法只有一個(gè),就是在你的web項(xiàng)目的**Module的PreInitialize中完成AbpRedisCacheManager的register(因?yàn)锳BP是在完成所有moudle類的PreInitialize方法后,才執(zhí)行各個(gè)Module的initalize方法的)。
返回ABP源碼分析系列文章目錄
總結(jié)
以上是生活随笔為你收集整理的【转】ABP源码分析三十:ABP.RedisCache的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马斯克喊话特斯拉死敌Rivian、Luc
- 下一篇: 微醺快乐水火出圈 开车千万别喝:检测超醉