首页 / 缓存 / java本地缓存和redis缓存
java本地缓存和redis缓存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java本地缓存和redis缓存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3027字,纯文字阅读大概需要5分钟。
内容图文
本地缓存
本地缓存存储在内存当中,实现缓存如下
首先需要引入包
<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缓存
原文:https://www.cnblogs.com/tiancaizhu/p/8600414.html
内容总结
以上是互联网集市为您收集整理的java本地缓存和redis缓存全部内容,希望文章能够帮你解决java本地缓存和redis缓存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。