Redis精华篇

 引用:  http://songfeng-123.iteye.com/blog/2369053

 引用:  http://blog.csdn.net/cctcc/article/details/50515548

 感谢两位博主提供的文章,对Redis有了清晰的认知

 


下面是自己参照网上资料整理的Redis连接池的配置

package cn.com.redis;


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


/**
 * Redis对象池
 * @author xys
 *
 */
public class RedisPool {
//Redis对象池
private static JedisPool jedisPool = null;
//Redis服务器IP
private static String host = "localhost";
//Redis的端口号
private static int port = 6379;
//Redis访问密码
private static String auth = "";


static{
try {
JedisPoolConfig config = new JedisPoolConfig();
//连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
config.setBlockWhenExhausted(true);
//设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数)
config.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy"); 
//是否启用pool的jmx管理功能, 默认true
config.setJmxEnabled(true);
//MBean ObjectName = new ObjectName("org.apache.commons.pool2:type=GenericObjectPool,name=" + "pool" + i); 默认为"pool"
config.setJmxNamePrefix("pool");
//是否启用后进先出, 默认true
config.setLifo(true);
//最大空闲连接数, 默认8个
config.setMaxIdle(20);
//最大连接数, 默认8个
config.setMaxTotal(100);
//获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间,  默认-1
config.setMaxWaitMillis(500);
//逐出连接的最小空闲时间 默认60000毫秒(1分钟)
config.setMinEvictableIdleTimeMillis(60000);
//最小空闲连接数, 默认0
config.setMinIdle(10);
//每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3
config.setNumTestsPerEvictionRun(3);
//对象空闲多久后逐出, 当空闲时间>该值 且 空闲连接>最大空闲数 时直接逐出,不再根据MinEvictableIdleTimeMillis判断  (默认逐出策略)   
config.setSoftMinEvictableIdleTimeMillis(180000);
//在获取连接的时候检查有效性, 默认false
config.setTestOnBorrow(true);
//在空闲时检查有效性, 默认false
config.setTestWhileIdle(false);
//“空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1.
config.setTimeBetweenEvictionRunsMillis(30000);
jedisPool = new JedisPool(config, host, port, 3000);


} catch (Exception e) {
e.printStackTrace();
}
}


/**
* 获取Jedis实例

* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}


/**
* 释放Jedis资源

* @param jedis
*/
public static void close(final Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}


public static JedisPool getJedisPool() {
return jedisPool;
}


public static void setJedisPool(JedisPool jedisPool) {
RedisPool.jedisPool = jedisPool;
}


public static String getHost() {
return host;
}


public static void setHost(String host) {
RedisPool.host = host;
}


public static int getPort() {
return port;
}


public static void setPort(int port) {
RedisPool.port = port;
}


public static String getAuth() {
return auth;
}


public static void setAuth(String auth) {
RedisPool.auth = auth;
}

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值