Ehcache与 Redis缓存

以授权功能而言

每次查询数据库消耗性能

鉴于权限数据一般不容易变,所以用缓存

用户第一次授权:调用realm查询数据库  第二次:直接从缓存中取出授权信息

缓存有两种方式:Ehcache  Redis

Ehcache缓存

1. jar

     Ehcache与 Redis缓存

2. shiro-ehcache.xml

     Ehcache与 Redis缓存

3. 解决配置文件红色问题

     Ehcache与 Redis缓存

4. application.xml文件中配置

     Ehcache与 Redis缓存

5. 效果

第一次访问数据库后,之后不再访问数据库,一切授权功能从缓存中读取

不再经历此断点

    Ehcache与 Redis缓存 

 

Redis缓存

1. jar

     Ehcache与 Redis缓存

2. spirng-redis.xml

     Ehcache与 Redis缓存

    Ehcache与 Redis缓存

3. ApplicationContext导入spirng-redis.xml

     Ehcache与 Redis缓存

4. Jedis工具类

     Ehcache与 Redis缓存

5. RedisCache 实现shiro提供的Cache接口

     Ehcache与 Redis缓存

    Ehcache与 Redis缓存

    Ehcache与 Redis缓存 

 

6. 创建 CustomCacheManager 实现 CacheManager 接口

     Ehcache与 Redis缓存

7.  applicationContext.xml 中配置缓存管理器,和 Cache 对象

     Ehcache与 Redis缓存

8. 执行代码后 redis数据库

     Ehcache与 Redis缓存

9.结果

     Ehcache与 Redis缓存

    Ehcache与 Redis缓存

ehcache 和  redis  比较

1. ehcache 直接在 jvm 虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。

2. redis 是通过 socket 访问到缓存服务,效率比 ehcache 低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。如果是单个应用或者对缓存访问要求很高的应用,用 ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用 redis

3.shiro缓存

    Encache 第一次 先访问数据库在访问缓存
    redis第一次先访问缓存在访问数据库