RedisUtil
2016-07-28 23:15
387 查看
最近使用redis于是就实现了一个工具类,方便使用。
使用的Jedis版本:jedis-2.8.1.jar
使用的Jedis版本:jedis-2.8.1.jar
package com.kuanrf.common.util; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * redis工具类 * * @author lujun.chen * @version [版本号, 2016年7月27日] * @see [相关类/方法] * @since [产品/模块版本] */ public final class RedisUtil { private static Logger logger = LogManager.getLogger(RedisUtil.class); private static String ADDR = ""; private static int PORT = 6379; private static String AUTH = null; private static int MAX_ACTIVE = 300; private static int MAX_IDLE = 200; private static int MAX_WAIT = 10000; private static int TIMEOUT = 10000; private static boolean TEST_ON_BORROW = true; private static JedisPool jedisPool = null; private static Jedis jedis = null; /** * 初始化Redis连接池 */ static { try { init(); } catch (Exception e) { logger.error("初始化Redis出错," + e); } } /** * 初始化连接池 * * @see [类、类#方法、类#成员] */ private synchronized static void init() { ADDR = PropertyUtils.getValue("redis.addr"); PORT = Integer.valueOf(PropertyUtils.getValue("redis.port")); AUTH = PropertyUtils.getValue("redis.auth"); MAX_ACTIVE = Integer.valueOf(PropertyUtils .getValue("redis.pool.max_active")); MAX_IDLE = Integer.valueOf(PropertyUtils .getValue("redis.pool.max_idle")); MAX_WAIT = Integer.valueOf(PropertyUtils .getValue("redis.pool.max_wait")); TIMEOUT = Integer.valueOf(PropertyUtils.getValue("redis.pool.timeout")); JedisPoolConfig config = new JedisPoolConfig(); config.setMaxIdle(MAX_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); config.setMaxTotal(MAX_ACTIVE); jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); } /** * 获取Jedis实例 * * @return */ private static Jedis getJedis() { try { if (jedisPool != null) { jedis = jedisPool.getResource(); } else { init(); jedis = jedisPool.getResource(); } } catch (Exception e) { logger.error("获取Redis实例出错," + e); } return jedis; } /** * 设置单个值 * * @param key * @param value * @return */ public static String set(String key, String value) { return set(key, value, null); } /** * 设置单个值,并设置超时时间 * * @param key * 键 * @param value * 值 * @param timeout * 超时时间(秒) * @return * @see [类、类#方法、类#成员] */ public static String set(String key, String value, Integer timeout) { String result = null; Jedis jedis = RedisUtil.getJedis(); if (jedis == null) { return result; } try { result = jedis.set(key, value); if (null != timeout) { jedis.expire(key, timeout); } } catch (Exception e) { logger.error(e.getMessage(), e); } finally { if (null != jedis) { jedis.close(); } } return result; } /** * 获取单个值 * * @param key * @return */ public static String get(String key) { String result = null; Jedis jedis = RedisUtil.getJedis(); if (jedis == null) { return result; } try { result = jedis.get(key); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { if (null != jedis) { jedis.close(); } } return result; } /** * 删除redis中数据 * * @param key * @return * @see [类、类#方法、类#成员] */ public static boolean del(String key) { Boolean result = Boolean.FALSE; Jedis jedis = RedisUtil.getJedis(); if (null == jedis) { return Boolean.FALSE; } try { jedis.del(key); } catch (Exception e) { logger.error("删除redis数据出错," + e); } finally { if (null != jedis) { jedis.close(); } } return result; } /** * 追加 * * @param key * @param value * @return * @see [类、类#方法、类#成员] */ public static Long append(String key, String value) { Long result = Long.valueOf(0); Jedis jedis = RedisUtil.getJedis(); if (null == jedis) { return result; } try { result = jedis.append(key, value); } catch (Exception e) { logger.error("追加redis数据出错," + e); } finally { if (null != jedis) { jedis.close(); } } return result; } /** * 检测是否存在 * * @param key * @return * @see [类、类#方法、类#成员] */ public static Boolean exists(String key) { Boolean result = Boolean.FALSE; Jedis jedis = RedisUtil.getJedis(); if (null == jedis) { return result; } try { result = jedis.exists(key); } catch (Exception e) { logger.error("检查是否存在出错:," + e); } finally { if (null != jedis) { jedis.close(); } } return result; } }
相关文章推荐
- redis物流渠道优先(优化方法)
- Redis
- Redis学习笔记七——向集群节点添加、删除和分配slot
- .NET中使用Redis
- 主从 + sentinel 实现redis的高可用
- Redis 集群教程
- 在一台linux机器上启动多个redis实例:学习redis的master-slave功能
- redis详解(一)-- 概述
- liunx 安装 redis
- spring如何集成一主多从的redis
- redis分页数据的缓存策略
- redis3.0.0 集群安装详细步骤
- 采用redis缓存数据
- [置顶] Spring cache +redis
- 【redis cluster】配置详解
- Redis介绍
- redis 持久化与备份策略
- Redis之利用锁机制来防止缓存过期产生的惊群现象
- redis 安装 与 启动
- Redis执行Lua脚本示例