java链接redis需要使用jedis包,实例使用的是jedis-2.8.1.jar 下载地址:http://pan.baidu.com/s/1jHLN9u2
一、创建连接池
private JedisPool pool = null;
public void init(){ // 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(8);//最大连接数
config.setMaxIdle(50); //最大空闲连接数
config.setMinIdle(5); //最小空闲连接数
config.setMaxWaitMillis(1000l); //获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
config.setTestOnBorrow(false); //在获取连接的时候检查有效性, 默认false
config.setTestWhileIdle(false);//在空闲时检查有效性, 默认false
pool = new JedisPool(config,"192.168.1.101",6379);
}
二、从连接池中获取链接查询,查询完毕记得关闭连接
public void getKey() {
Jedis jedis = null;
try{
String name = jedis.get("name");
} catch (Exception e) {
e.printStackTrace();
jedis.close();
}
}
出现问题描述:
1.Could not get a resource from the pool, Connection refused: connect
windows Java这边客户端链接被拒接了,想想问题
1.Vmware里面的Linux所安装的Redis已经正常启动
2.在windows用ssh客户端链接linux可以操作redis
3.linux防火墙已经关闭
4.拼linux的ip也能拼通
按理说应该没问题,下利用telnet测试下端口
telnet 192.168.0.104 6379
发现端口不能拼通,但是linu下其他的端口能拼通,说明就是redis自身配置的问题了
看了下配置文件,发现配置文件绑定了本地ip,该配置会导致,其他ip登录被拒绝,所以我们把它注释掉
并设置 protected-mode no //关闭保护模式