以授權功能而言
每次查詢數據庫消耗性能
鑑於權限數據一般不容易變,所以用緩存
用戶第一次授權:調用realm查詢數據庫 第二次:直接從緩存中取出授權信息
緩存有兩種方式:Ehcache Redis
Ehcache緩存
1. 拷jar包
2. shiro-ehcache.xml
3. 解決配置文件紅色問題
4. application.xml文件中配置
5. 效果
第一次訪問數據庫後,之後不再訪問數據庫,一切授權功能從緩存中讀取
不再經歷此斷點
Redis緩存
1. 拷jar包
2. spirng-redis.xml
3. ApplicationContext導入spirng-redis.xml
4. Jedis工具類
5. RedisCache 實現shiro提供的Cache接口
6. 創建 CustomCacheManager 實現 CacheManager 接口
7. 在 applicationContext.xml 中配置緩存管理器,和 Cache 對象
8. 執行代碼後 redis數據庫
9.結果
ehcache 和 redis 比較
1. ehcache 直接在 jvm 虛擬機中緩存,速度快,效率高;但是緩存共享麻煩,集羣分佈式應用不方便。
2. redis 是通過 socket 訪問到緩存服務,效率比 ehcache 低,比數據庫要快很多,處理集羣和分佈式緩存方便,有成熟的方案。如果是單個應用或者對緩存訪問要求很高的應用,用 ehcache。如果是大型系統,存在緩存共享、分佈式部署、緩存內容很大的,建議用 redis。
3.shiro緩存
Encache 第一次 先訪問數據庫在訪問緩存 redis第一次先訪問緩存在訪問數據庫