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源碼分析系列文章目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM