123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- package com.iamberry.redis;
- import com.alibaba.fastjson.JSONObject;
- import com.iamberry.wechat.tools.NameUtils;
- import com.iamberry.wechat.tools.payUtil.DatetimeUtil;
- import org.apache.log4j.Logger;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.JedisPool;
- import redis.clients.jedis.JedisPoolConfig;
- import java.util.Date;
- import java.util.List;
- /**
- * redis工具类
- * @author root
- */
- public class RedisUtils {
- /**ip*/
- private static final String IP = NameUtils.getConfig("redis_host");
- /**端口*/
- private static final int PORT = Integer.parseInt(NameUtils.getConfig("redis_port"));
- /**密码(原始默认是没有密码)*/
- private static final String AUTH = NameUtils.getConfig("redis_auth");
- /**最大连接数*/
- private static int MAX_ACTIVE = Integer.parseInt(NameUtils.getConfig("redis_max_active"));
- /**设置最大空闲数*/
- private static int MAX_IDLE = Integer.parseInt(NameUtils.getConfig("redis_max_idle"));
- /**最大连接时间*/
- private static int MAX_WAIT = Integer.parseInt(NameUtils.getConfig("redis_max_wait"));
- /**超时时间*/
- private static int TIMEOUT = Integer.parseInt(NameUtils.getConfig("redis_timeout"));
- private static JedisPool pool = null;
- private static Logger logger = Logger.getLogger(RedisUtils.class);
- static {
- /*
- * 初始化线程池(只在类进行初始化的时候进行一次)
- */
- JedisPoolConfig config = new JedisPoolConfig();
- config.setMaxTotal(MAX_ACTIVE);
- config.setMaxIdle(MAX_IDLE);
- config.setMaxWaitMillis(MAX_WAIT);
- config.setTestOnBorrow(false);
- config.setTestOnReturn(true);
- config.setTestWhileIdle(true);
- pool = new JedisPool(config, IP, PORT, TIMEOUT);
- }
- /**
- * 获取连接
- */
- private static synchronized Jedis getJedis() {
- try {
- if(pool != null) {
- Jedis jedis = pool.getResource();
- jedis.auth(AUTH);
- return jedis;
- } else {
- throw new RuntimeException("获取失败Redis实例失败,请重试");
- }
- } catch (Exception e) {
- logger.error("", e);
- throw e;
- }
- }
- /**
- * 插入对象
- * @param key
- * @param obj
- * @return
- */
- public static boolean put(String key, Object obj) {
- Jedis jedis = null;
- try {
- String value = JSONObject.toJSONString(obj);
- jedis = getJedis();
- return "ok".equalsIgnoreCase(jedis.set(key, value));
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return false;
- }
- /**
- * 插入对象
- * @param key
- * @param value
- * @return
- */
- public static boolean put(String key, String value) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- return "ok".equalsIgnoreCase(jedis.set(key, value));
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return false;
- }
- /**
- * 获取单个对象
- * @param key
- * @param clazz
- * @return
- */
- public static <T> T get(String key, Class<T> clazz) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- String result = jedis.get(key);
- return JSONObject.parseObject(result, clazz);
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return null;
- }
- /**
- * 获取单个String对象
- * @param key
- * @return
- */
- public static String get(String key) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- return jedis.get(key);
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return null;
- }
- /**
- * 获取list集合
- * @param key
- * @param clazz
- * @return
- */
- public static <T> List<T> list(String key, Class<T> clazz) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- String result = jedis.get(key);
- return JSONObject.parseArray(result, clazz);
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return null;
- }
- /**
- * 删除key
- * @param key
- * @return
- */
- public static boolean del(String key) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- return jedis.del(key) >= 1;
- } catch (Exception e) {
- logger.error("", e);
- } finally {
- colse(jedis);
- }
- return false;
- }
- /**
- * 设置过期时间
- * @param key
- * @param date
- */
- public static void expire(String key, Date date) {
- Jedis jedis = null;
- try {
- jedis = getJedis();
- if (null != date) {
- long nowTime = System.currentTimeMillis();
- long dateTime = date.getTime();
- if (dateTime > nowTime) {
- jedis.expire(key, (int)(dateTime - nowTime) / 1000);
- }
- }
- }catch (Exception e){
- logger.error("", e);
- }finally {
- colse(jedis);
- }
- }
- /**
- * 关闭连接
- * @param jedis
- */
- private static void colse(Jedis jedis) {
- if(jedis != null) {
- jedis.close();
- }
- }
- }
|