redis工具类详解大数据

pom.xml

<!-- redis --> 
		<dependency> 
			<groupId>redis.clients</groupId> 
			<artifactId>jedis</artifactId> 
			<version>2.1.0</version> 
			<type>jar</type> 
		</dependency>

redis.propertis

#/u6700/u5927/u5206/u914d/u7684/u5bf9/u8c61/u6570 
redis.pool.maxActive=1024 
#/u6700/u5927/u80fd/u591f/u4fdd/u6301idel/u72b6/u6001/u7684/u5bf9/u8c61/u6570 
redis.pool.maxIdle=200 
#/u5f53/u6c60/u5185/u6ca1/u6709/u8fd4/u56de/u5bf9/u8c61/u65f6/uff0c/u6700/u5927/u7b49/u5f85/u65f6/u95f4 
redis.pool.maxWait=10000 
#/u5f53/u8c03/u7528borrow Object/u65b9/u6cd5/u65f6/uff0c/u662f/u5426/u8fdb/u884c/u6709/u6548/u6027/u68c0/u67e5 
redis.pool.testOnBorrow=true 
#/u5f53/u8c03/u7528return Object/u65b9/u6cd5/u65f6/uff0c/u662f/u5426/u8fdb/u884c/u6709/u6548/u6027/u68c0/u67e5 
redis.pool.testOnReturn=true 
redis.pool.password=3.1414926 
#IP 
redis.ip=192.168.0.12 
#Port 
redis.port=6379

java:

package com.ibm.common.util; 
 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Properties; 
 
/** 
 * @author 加内特 
 */ 
public class PropUtils { 
 
	protected static final String REDIS_RESOURCES_PROPERTIES_FILE_NAME = "redis.properties"; 
 
	/** 
	 * 取得所有属性值 
	 *  
	 * @param propertiesFileName 
	 * @return 
	 * @throws IOException 
	 */ 
	protected static Properties getProperties(String propertiesFileName) throws IOException { 
		Properties prop = new Properties(); 
		InputStream is = PropUtils.class.getClassLoader().getResourceAsStream(propertiesFileName); 
 
		try { 
			prop.load(is); 
		} catch (IOException e) { 
			throw e; 
		} 
 
		return prop; 
	} 
 
	 
	/** 
	 * 取得redis文件 
	 * 
	 * @return 
	 * @throws IOException 
	 */ 
	public static Properties getRedisResourcesProperties() { 
		try { 
			return getProperties(REDIS_RESOURCES_PROPERTIES_FILE_NAME); 
		} catch (IOException ioe) { 
			ioe.printStackTrace(); 
		} 
		return null; 
	} 
 
	 
	/** 
	 * 取得redis文件的属性值 
	 * 
	 * @return 
	 * @throws IOException 
	 */ 
	public static String getRedisValue(String key) { 
		Properties properties = getRedisResourcesProperties(); 
		return properties.getProperty(key); 
	} 
 
}
package com.ibm.common.cache; 
 
import com.ibm.common.util.PropUtils; 
 
import redis.clients.jedis.Jedis; 
import redis.clients.jedis.JedisPool; 
import redis.clients.jedis.JedisPoolConfig; 
 
/** 
 * Redis操作接口 
 * 
 * @author 加内特 
 */ 
public class RedisUtils { 
	private static JedisPool pool = null; 
	private static ThreadLocal<JedisPool> poolThreadLocal = new ThreadLocal<JedisPool>(); 
 
	/** 
	 * 构建redis连接池 
	 *  
	 * @param ip 
	 * @param port 
	 * @return JedisPool 
	 */ 
	public static JedisPool getPool() { 
		if (pool == null) { 
			JedisPoolConfig config = new JedisPoolConfig(); 
			config.setMaxActive(Integer.valueOf(PropUtils.getRedisValue("redis.pool.maxActive"))); 
			config.setMaxIdle(Integer.valueOf(PropUtils.getRedisValue("redis.pool.maxIdle"))); 
			config.setMaxWait(Long.valueOf(PropUtils.getRedisValue("redis.pool.maxWait"))); 
			config.setTestOnBorrow(Boolean.valueOf(PropUtils.getRedisValue("redis.pool.testOnBorrow"))); 
			config.setTestOnReturn(Boolean.valueOf(PropUtils.getRedisValue("redis.pool.testOnReturn"))); 
			// 测试环境 
			// pool = new JedisPool(config, bundle.getString("redis.ip"), 
			// Integer.valueOf(bundle.getString("redis.port"))); 
			// 线上环境 
			pool = new JedisPool(config, PropUtils.getRedisValue("redis.ip"), Integer.valueOf(PropUtils.getRedisValue("redis.port")), 
					100000, PropUtils.getRedisValue("redis.pool.password")); 
		} 
		return pool; 
	} 
 
	public static JedisPool getConnection() { 
		// ②如果poolThreadLocal没有本线程对应的JedisPool创建一个新的JedisPool,将其保存到线程本地变量中。 
		if (poolThreadLocal.get() == null) { 
			pool = RedisUtils.getPool(); 
			poolThreadLocal.set(pool); 
			return pool; 
		} else { 
			return poolThreadLocal.get();// ③直接返回线程本地变量 
		} 
	} 
 
	/** 
	 * 返还到连接池 
	 *  
	 * @param pool 
	 * @param redis 
	 */ 
	public static void returnResource(JedisPool pool, Jedis redis) { 
		if (redis != null) { 
			pool.returnResource(redis); 
		} 
	} 
 
	/** 
	 * 获取数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static String get(String key) { 
		String value = null; 
 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			value = jedis.get(key); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return value; 
	} 
 
	/** 
	 * 获取数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static byte[] get(byte[] key) { 
		byte[] value = null; 
 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			value = jedis.get(key); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return value; 
	} 
 
	/** 
	 * 删除数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static Long del(String key) { 
		Long value = null; 
 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			value = jedis.del(key); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return value; 
	} 
 
	/** 
	 * 删除数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static Long del(byte[] key) { 
		Long value = null; 
 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			value = jedis.del(key); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return value; 
	} 
 
	/** 
	 * 判断是否存在 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static Boolean exists(String key) { 
		Boolean value = null; 
 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			value = jedis.exists(key); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return value; 
	} 
 
	/** 
	 * 赋值数据 
	 *  
	 * @param key 
	 * @param value 
	 * @param expireSeconds(过期时间,秒) 
	 * @return value 
	 */ 
	public static Long set(String key, String value, int expireSeconds) { 
		Long result = null; 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			jedis.set(key, value); 
			result = jedis.expire(key, expireSeconds); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return result; 
	} 
 
	/** 
	 * 设置过期时间 
	 *  
	 * @param key 
	 * @param expireSeconds(过期时间,秒) 
	 * @return value 
	 */ 
	public static Long expire(String key, int expireSeconds) { 
		Long result = null; 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			result = jedis.expire(key, expireSeconds); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return result; 
	} 
 
	/** 
	 * 赋值数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static String set(String key, String value) { 
		String result = null; 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			result = jedis.set(key, value); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return result; 
	} 
 
	/** 
	 * 赋值数据 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static Long sadd(String key, String value) { 
		Long result = null; 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			result = jedis.sadd(key, value); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return result; 
	} 
 
	/** 
	 * 判断set中是否有值 
	 *  
	 * @param key 
	 * @return 
	 */ 
	public static Boolean sismember(String key, String member) { 
		Boolean result = null; 
		JedisPool pool = null; 
		Jedis jedis = null; 
		try { 
			pool = getPool(); 
			jedis = pool.getResource(); 
			result = jedis.sismember(key, member); 
		} catch (Exception e) { 
			e.printStackTrace(); 
		} finally { 
			// 释放redis对象 
			pool.returnBrokenResource(jedis); 
			// 返还到连接池 
			returnResource(pool, jedis); 
		} 
 
		return result; 
	} 
 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/8975.html

(0)
上一篇 2021年7月19日 09:02
下一篇 2021年7月19日 09:02

相关推荐

发表回复

登录后才能评论