1、Redis安装引用
1)安装
Windows:Windows上安装配置Redis
Linux:Linux上下载安装配置Redis
2)引用
Maven地址:https://mvnrepository.com/artifact/redis.clients/jedis/3.0.0
Maven项目依赖:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.0</version></dependency>
2、Redis工具类完整代码
1)基类BaseCache
package com.wonhero.utils.cache;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.net.URI;import java.util.Set;/** * 缓存基类 */public class BaseCache { private static JedisPoolConfig jedisPoolConfig; protected static Jedis getJedis() { JedisPool jedisPool = null; if (jedisPoolConfig == null) { jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(1024); jedisPoolConfig.setMaxIdle(100); jedisPoolConfig.setMaxWaitMillis(100); jedisPoolConfig.setTestOnBorrow(false);//jedis 第一次启动时,会报错 jedisPoolConfig.setTestOnReturn(true); } String ip = "192.168.31.22"; int port = 6379; int timeout = 2000; String password = ""; // 初始化JedisPool if (password == null || "".equals(password)) jedisPool = new JedisPool(jedisPoolConfig, ip, port, timeout); else jedisPool = new JedisPool(jedisPoolConfig, ip, port, timeout, password); return jedisPool.getResource(); } /** * 删除数据 * * @param pattern */ public static void removeData(String pattern) { Jedis redis = null; try { redis = getJedis(); Set<String> keys = redis.keys("*" + pattern); if (keys == null || keys.size() == 0) { return; } for (String key : keys) { redis.del(key); } } finally { if (redis != null) { redis.close(); } } }}
2)实现类
package com.wonhero.utils.cache;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import redis.clients.jedis.Jedis;public class CommonCache extends BaseCache { private final static Logger logger = LoggerFactory.getLogger(CommonCache.class); /** * 获取值(用户ID) * * @returne */ public static String getValue(String key) { Jedis redis = null; //long startTime = DateUtil.getCurrentDate().getTime(); try { redis = getJedis(); return redis.get(key); } finally { if (redis != null) { redis.close(); } //logger.debug( key + " redis 耗时:" + (DateUtil.getCurrentDate().getTime() - startTime)); } } /** * 获取值(用户ID) * * @returne */ public static String getAndRemoveValue(String key) { Jedis redis = null; String value = ""; //long startTime = DateUtil.getCurrentDate().getTime(); try { redis = getJedis(); value = redis.get(key); removeValue(key); } finally { if (redis != null) { redis.close(); } //logger.debug( key + "getAndRemoveValue redis 耗时:" + (DateUtil.getCurrentDate().getTime() - startTime)); } return value; } /** * 保存数据 * * @param key */ public static void setValue(String key, String value, int expireTime) { Jedis redis = null; try { redis = getJedis(); redis.set(key, value); redis.expire(key, expireTime); } finally { if (redis != null) { redis.close(); } } } /** * 保存数据 * * @param key */ public static void setValue(String key, String value) { Jedis redis = null; try { redis = getJedis(); redis.set(key, value); } finally { if (redis != null) { redis.close(); } } }
public static byte[] getValue(byte[] key) { Jedis redis = null; //long startTime = DateUtil.getCurrentDate().getTime(); try { redis = getJedis(); return redis.get(key); } finally { if (redis != null) { redis.close(); } //logger.debug( key + " redis 耗时:" + (DateUtil.getCurrentDate().getTime() - startTime)); } }
/** * 保存数据 * * @param key */ public static void setValue(byte[] key, byte[] value) { Jedis redis = null; try { redis = getJedis(); redis.set(key, value); } finally { if (redis != null) { redis.close(); } } }
/** * 删除记录 * * @param key */ public static void removeValue(String key) { Jedis redis = null; try { redis = getJedis(); redis.del(key); } finally { if (redis != null) { redis.close(); } } } /** * 重设超时间 * * @param jdi * @param expireTime */ public static void resetExpireTime(String jdi, int expireTime) { Jedis redis = null; try { redis = getJedis(); redis.expire(jdi, expireTime); } finally { if (redis != null) { redis.close(); } } }}
免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除
-
设计总结|如何更好地表达活动品牌?
-
谈谈“目标思维”的落地
编辑导读:我们在做数据分析之前,一定要搞清楚需求方的目标到底是什么,要根据目标来重新定义业务方提出的问题,这就是目标思维。目标思维有多重要呢?应该如何落地呢...
-
在线教育平台竞品分析:网易云课堂vs腾讯课堂
本文从移动端出发,对当前比较热门的两款在线教育平台软件-网易云课堂和腾讯课堂进行比较和分析,不足之处还请大家多提意见。 市场分析 随着国内互联网技术的发展和移...
-
即学即用|父亲节活动的4种运营策略
-
B端产品经理和体验设计师的工作职责边界梳理
-
豆果美食电商分支用户体验报告及建议
-
数据分析师如何提高工作效率
在我们的日常工作中,提高工作效率是每个岗位都需要实现的,在工作中,面对比较凌乱的事情时,首先我们需要梳理清楚,按重要级进行开展;本文作者分享了关于...
-
2016中国云计算SaaS移动办公平台年度综合报告
-
网易大布局教育事业:网易公开课、网易云课堂和MOOC分析
-
一篇文章搞懂语音交互的来龙去脉