RedisCacheProvider.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. package com.nuliji.tools.shiro.cache;
  2. import org.apache.shiro.cache.Cache;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import java.util.concurrent.ConcurrentHashMap;
  6. import java.util.concurrent.ConcurrentMap;
  7. /**
  8. * Created by gaojie on 2017/11/7.
  9. */
  10. public class RedisCacheProvider implements CacheProvider {
  11. private static final Logger logger = LoggerFactory.getLogger(RedisCacheProvider.class);
  12. private RedisManager redisManager;
  13. // fast lookup by name map
  14. private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();
  15. @Override
  16. public <k, v> Cache<k, v> getCache(String name) {
  17. logger.debug("get instance of RedisCache,name: " + name);
  18. Cache c = caches.get(name);
  19. if (c == null) {
  20. // create a new cache instance
  21. c = new RedisCache<k, v>(name, redisManager);
  22. // add it to the cache collection
  23. caches.put(name, c);
  24. }
  25. return c;
  26. }
  27. public RedisManager getRedisManager() {
  28. return redisManager;
  29. }
  30. public void setRedisManager(RedisManager redisManager) {
  31. this.redisManager = redisManager;
  32. }
  33. }