Redis工具类,使用JedisPool,并设置jedis连接池的参数

RedisUtil

import java.util.Set;
import redis.clients.jedis.Jedis;

public class RedisUtil {

	/**
	 * set保存
	 * @param key
	 * @param value
	 */
	public static void setValue(String key, String value) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		jedis.set(key, value);
		jedis.close();
	}

	/**
	 * 保存并设置生存时间
	 * @param key
	 * @param value
	 * @param seconds
	 */
	public static void setValueTime(String key, String value, Integer seconds) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		jedis.set(key, value);
		jedis.expire(key, seconds);
		jedis.close();
	}

	/**
	 * 根据key查询
	 * @param key
	 * @return
	 */
	public static String getByKey(String key) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		String result = jedis.get(key);
		jedis.close();
		return result;
	}

	/**
	 * 查看所有key
	 * @return
	 */
	public static Set<String> getAllkeys() {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		Set<String> keys = jedis.keys("*");
		jedis.close();
		return keys;
	}

	/**
	 * 根据key删除
	 * @param key
	 */
	public static void delByKey(String key) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		jedis.del(key);
		jedis.close();
	}

	/**
	 * 根据key设置生存时间
	 * @param key
	 */
	public static void expireTime(String key, Integer seconds) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		jedis.expire(key, seconds);
		jedis.close();
	}

	/**
	 * 递增
	 * @param key
	 * @return
	 */
	public static Long incr(String key) {
		Jedis jedis = JedisClientPool.jedisPool.getResource();
		Long count = jedis.incr(key);
		jedis.close();
		return count;
	}
}

JedisClientPool

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisClientPool {
	public static JedisClientPool jedisClientPool = getInstance();
	public static JedisPool jedisPool;
	public static int maxTotal;
	public static int maxIdle;
	public static int maxWaitMillis;

	public static synchronized JedisClientPool getInstance() {
		if (null == jedisClientPool) {
			jedisClientPool = new JedisClientPool();
		}
		return jedisClientPool;
	}

	public JedisClientPool() {
		if (null == jedisPool) {
			init();
		}
	}

	/**
	 * 初始化Jedis
	 * @return
	 */
	private static JedisPoolConfig initPoolConfig() {
		JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
		// 最大分配的对象数
		jedisPoolConfig.setMaxTotal(maxTotal);
		// jedis实例
		jedisPoolConfig.setMaxIdle(maxIdle);
		// 最大等待时间
		jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
		jedisPoolConfig.setTestOnBorrow(true);
		// 是否进行有效性检查
		jedisPoolConfig.setTestOnReturn(true);
		return jedisPoolConfig;
	}

	/**
	 * 初始化jedis连接池
	 */
	public static void init() {
		maxTotal = Integer.parseInt(PropertiesUtils.getValue("redis.pool.maxTotal"));
		maxIdle = Integer.parseInt(PropertiesUtils.getValue("redis.pool.maxIdle"));
		maxWaitMillis = Integer.parseInt(PropertiesUtils.getValue("redis.pool.maxWaitMillis"));
		JedisPoolConfig jedisPoolConfig = initPoolConfig();
		String host = PropertiesUtils.getValue("redis.host");
		int port = Integer.parseInt(PropertiesUtils.getValue("redis.port"));
		// 构造连接池
		jedisPool = new JedisPool(jedisPoolConfig, host, port);
	}
}

PropertiesUtils

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public class PropertiesUtils {
	public PropertiesUtils() {
	}

	private static Properties props = new Properties();
	static {
		try {
			props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("redis.properties"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static String getValue(String key) {
		return props.getProperty(key);
	}

	public static void updateProperties(String key, String value) {
		props.setProperty(key, value);
	}
}

redis.properties

redis.host=ip
redis.port=6379

redis.pool.maxTotal=300
redis.pool.maxIdle=100
redis.pool.maxWaitMillis=1500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值