標籤:error mob get live etc 緩衝 package ice nts
本機快取
本機快取儲存在記憶體當中,實現緩衝如下
首先需要引入包
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.1</version></dependency>
快取服務介面:
package com.mobcb.platform.service.common;import net.sf.ehcache.Cache;public interface EhcacheService { public void clearCache(String cacheName, String cacheKey); public void putCache(String cacheName, String cacheKey, Object value); public Object getCacheValue(String cacheName, String cacheKey); public Cache getCache(String cacheName); /** * 設定緩衝 * * @param cacheName 緩衝名稱 * @param cacheKey 緩衝key * @param value 值 * @param timeToLiveSeconds 存在時間,單位秒 */ public void putCache(String cacheName, String cacheKey, Object value, int timeToLiveSeconds);}
EhcacheService 介面實現:
package com.mobcb.platform.service.impl.common;import com.mobcb.platform.service.common.EhcacheService;import javax.annotation.Resource;import net.sf.ehcache.Cache;import net.sf.ehcache.CacheManager;import net.sf.ehcache.Element;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Service;@Service("ehcacheService")public class EhcacheServiceImpl implements EhcacheService { private static Log logger = LogFactory.getLog(EhcacheServiceImpl.class); @Resource(name = "ehCacheManager") private CacheManager cacheManger; private boolean createCacheIfNotFound = true; @Override public void clearCache(String cacheName, String cacheKey) { Cache cache = getCache(cacheName); if (cache == null) { return; } cache.remove(cacheKey); } @Override public void putCache(String cacheName, String cacheKey, Object value) { Cache cache = getCache(cacheName); if (cache == null) { return; } cache.put(new Element(cacheKey, value)); } @Override public Object getCacheValue(String cacheName, String cacheKey) { Cache cache = getCache(cacheName); if (cache == null) { return null; } Element element = cache.get(cacheKey); if (element == null || element.isExpired()) { return null; } return element.getObjectValue(); } @Override public Cache getCache(String cacheName) { Cache cache = cacheManger.getCache(cacheName); if (cache == null && createCacheIfNotFound) { cache = (Cache) cacheManger.addCacheIfAbsent(cacheName); } if (cache == null) { logger.error("EHCache: cache not config and not auto created, cacheName=" + cacheName); } return cache; } @Override public void putCache(String cacheName, String cacheKey, Object value, int timeToLiveSeconds) { Cache cache = getCache(cacheName); if (cache == null) { return; } cache.put(new Element(cacheKey, value, timeToLiveSeconds, timeToLiveSeconds)); }}
緩衝使用樣本:
引入快取服務介面
/** * 快取服務 */@Resource(name = "ehcacheService")private EhcacheService ehcacheService;
調用:
Object requestSource = ehcacheService.getCacheValue( "SHCAuth", "SHCAuthKey");logger.info("------------------------緩衝擷取認證碼"+requestSource+"-----------------------");
第一個參數是緩衝名,第二個是緩衝名下的索引值
Redis緩衝
java本機快取和redis緩衝