配置第二步放进去。
配置第一步
创建cacheManager的Bean
shiro缓存管理
https://github.com/2368001770/shiro-learn/tree/master/shiro-web
github
还可以进行本地二次缓存, 而不用每次都从Redis中读取, 性能会更高, 留给自己实现...???
Redis存储权限数据, 第一次从数据库中读取, 并保存到Redis中, 以后就可以直接从Redis中读取数据了.
Shiro缓存管理
其缓存管理仍旧是依赖于Redis进行实现。
意为将从数据库取出来的数据放置到Redis缓存中去,如果缓存中有直接取出,没有则去数据库中获取并且放置到Reids缓存中。
步骤:
与之前的Session管理一致。首先创建CacheManager并且实现CacheManager接口。
创建Cache类实现Cache接口,其中有增删改查等方法。同样通过序列化与反序列化、二进制数组键值对等实现其中方法。
在CacheManager类中注入Cache类,并且将其作为返回值写入到实现的唯一方法的返回处。
将CacheManager在Spring.xml中进行配置Bean,并且将次设置到SecurityManager中。
都是通过JedisUtil完成的操作,均是将数据保存到了Redis中,无论是Session还是缓存只是多了一个Redis进行管理。
shiro缓存管理
ConcurrentHashMap<byte[],byte[]> sessionCacheMap = new CocurrentHashMap<>(); public V put (K k,V v){ //... sessionCacheMap.put(key,value); } public V get(K k){ if(sessionCacheMap .contains(key)){ return sessionCacheMap.get(key); }else{ //..从redis中获取 sessionCacheMap.put(key,value); } }
实现内存缓存大概思路。
Shiro缓存管理