import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class MyJedisPool {
private final static Logger logger = LoggerFactory.getLogger(MyJedisPool.class);
private static JedisPool readPool = null;
private static JedisPool writePool = null;
//静态代码初始化池配置
static {
try{
Properties props = new Properties();
InputStream in = MyJedisPool.class.getResourceAsStream("/redis.properties");
props.load(in);
//创建jedis池配置实例
JedisPoolConfig config = new JedisPoolConfig();
//设置池配置项值
config.setMaxTotal(Integer.valueOf(props.getProperty("jedis.pool.maxActive")));
config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle")));
config.setMaxWaitMillis(Long.valueOf(props.getProperty("jedis.pool.maxWait")));
config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow")));
config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn")));
//根据配置实例化jedis池
readPool = new JedisPool(config, props.getProperty("redisReadURL"), Integer.valueOf(props.getProperty("redisReadPort")));
writePool = new JedisPool(config, props.getProperty("redisWriteURL"), Integer.valueOf(props.getProperty("redisWritePort")));
}catch (IOException e) {
logger.info("redis连接池异常",e);
}
}
/**获得jedis对象*/
public static Jedis getReadJedisObject(){
return readPool.getResource();
}
/**获得jedis对象*/
public static Jedis getWriteJedisObject(){
return writePool.getResource();
}
/**归还jedis对象*/
public static void returnJedisOjbect(Jedis jedis){
if (jedis != null) {
jedis.close();
}
}
}
import redis.clients.jedis.Jedis;
import java.util.Set;
public class RedisUtils {
/**
* 获取hash表中所有key
* @param name
* @return
*/
public static Set<String> getHashAllKey(String name){
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.hkeys(name);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 从redis hash表中获取
* @param hashName
* @param key
* @return
*/
public static String getHashKV(String hashName,String key){
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.hget(hashName, key);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 删除hash表的键值对
* @param hashName
* @param key
*/
public static Long delHashKV(String hashName,String key){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.hdel(hashName,key);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 存放hash表键值对
* @param hashName
* @param key
* @param value
*/
public static Long setHashKV(String hashName,String key,String value){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.hset(hashName,key,value);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 删除键值对
* @param k
* @return
*/
public static Long delKV(String k){
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.del(k);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 放键值对
* 永久
* @param k
* @param v
*/
public static String setKV(String k, String v)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.set(k, v);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 放键值对
*
* @param k
* @param v
*/
public static String setKV(String k,int second, String v)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getWriteJedisObject();
return jedis.setex(k,second, v);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
/**
* 根据key取value
*
* @param k
* @return
*/
public static String getKV(String k)
{
Jedis jedis = null;
try {
jedis = MyJedisPool.getReadJedisObject();
return jedis.get(k);
}catch (Exception e){
e.printStackTrace();
}finally {
MyJedisPool.returnJedisOjbect(jedis);
}
return null;
}
}