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.cjavapy.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.cjavapy.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();
}
}
}
}