玩了一下 redis ,因此使用 jedis 。。。
redis.clients
jedis
2.9.0
但是这个jedis 的版本比较高,,, 百度时候的 其他 redisUtil 或者是 整合方案已经过时了。。。 因此 看了 一下jedis 这个版本的代码 改造了一下。 首先是 spring的 redis 配置:
然后是 redisUtil 当然了这个只是单机的,不算完全,参考即可,,,而且代码 也是百度 改造了,,,分布式的也是差不多的,百度去吧, 只是释放连接的时候,方法换一下,,,低版本的方式已经过时了。
package com.skg.redis;
import org.apache.log4j.Logger;
import com.skg.base.core.helper.SpringHelper;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
*
* @author : oumin
* @date : redis 调用类, 单机的目前主要是,,而不是集群的
* @desc :2017年5月4日
*
*/
public class RedisUtil {
private static Logger log = Logger.getLogger(RedisUtil.class);
private static JedisPool jedisPool = null;
public synchronized static Jedis getJedis() {
// 初始化池,获取 spring 容器里面初始化的redis池的对象
if (null == jedisPool) {
jedisPool = (JedisPool) SpringHelper.getBean("jedisPool");
}
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
log.error("连接池获取redis 连接失败。redis对象为空!");
return null;
}
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
}
}
/**
* 释放jedis资源
*
* @param jedis
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
// jedisPool.returnResource(jedis); 过时了,不要使用这个释放资源
jedis.close();// 使用close回收
}
}
public static void put(String key, String value) {
Jedis jedis = null;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
jedis.set(key, value);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
}
public static String get(String key) {
String value = "";
Jedis jedis = null;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
value = jedis.get(key);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
return value;
}
public static boolean exists(String key) {
boolean bool = false;
Jedis jedis = null;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
bool = jedis.exists(key);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
return bool;
}
public static void incr(String key) {
Jedis jedis = null;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
jedis.incr(key);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
}
public static void sadd(String key, String members) {
Jedis jedis = null;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
jedis.sadd(key, members);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
}
public static boolean sismember(String key, String members) {
Jedis jedis = null;
boolean bool = false;
// 从池中获取一个jedis实例
try {
jedis = getJedis();
bool = jedis.sismember(key, members);
} catch (Exception e) {
log.error(e.getMessage(), e);
} finally {
// 还回到连接池
returnResource(jedis);
}
return bool;
}
}
以后 我继续玩redis的时候再继续完善了。当然了能够开始玩redis的,相信看了一下redis的 pool的 源码也是知道在新版本里面是怎么使用和配置的。