import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.locks.ReentrantLock;
public class RedisUtil{
/** 线程锁 */
private static final ReentrantLock lock = new ReentrantLock();
/**
* 获取redis里的主键值
* @param primaryKey redis主键
* @return 返回当前redis主键的值
*/
public static String getValue(String primaryKey)
{
Jedis jedis = RedisDB.getPool().getResource();
lock.lock();// 加上锁
try
{
if (jedis.exists(primaryKey)) // 如存在就拿出最大的primaryKey值
return jedis.get(primaryKey);
}
finally
{
// 使用完后,将连接放回连接池
RedisDB.getPool().returnResourceObject(jedis);
lock.unlock();// 释放锁
}
return null;
}
/**
* 设置redis主键的值并调用有效时间
* @param primaryKey redis主键值
* @param value redis主键的值
* @param validityTime 有效时间(大于0就设置否则默认)时间是秒为单位
*/
public static void setValue(String primaryKey, String value,int validityTime)
{
Jedis jedis = RedisDB.getPool().getResource();
lock.lock();// 加上锁
try
{
if (value != null && !"".equals(value))
{
jedis.set(primaryKey, value);
//设置有效时间
if(validityTime > 0)
jedis.expire(primaryKey, validityTime);
}
}
finally
{
// 使用完后,将连接放回连接池
RedisDB.getPool().returnResourceObject(jedis);
lock.unlock();// 加上锁
}
}
}
Redis工具类
最新推荐文章于 2024-11-05 00:04:47 发布