【转】ABP源码分析三十:ABP.RedisCache
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马斯克喊话特斯拉死敌Rivian、Luc
- 下一篇: 【转】2.1【MySQL】运行原理(一)