Ehcache与 Redis缓存
以授权功能而言
每次查询数据库消耗性能
鉴于权限数据一般不容易变,所以用缓存
用户第一次授权:调用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第一次先访问缓存在访问数据库