java连接Redis
来源:互联网 发布:js中的if else 编辑:程序博客网 时间:2024/06/18 14:01
package bean;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.Pipeline;import java.util.List;/** * Created by Administrator on 2017/5/8 0008. */public class RedisPool { //连接池配置 static GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); //初始化redis连接池,默认8个最大连接数 static JedisPool jedisPool=null; static { //设置最大连接数为默认的5倍 //poolConfig.setMaxTotal(GenericObjectPoolConfig.DEFAULT_MAX_TOTAL*5); //设置最大空闲连接数为默认的3倍 poolConfig.setMaxIdle(GenericObjectPoolConfig.DEFAULT_MAX_IDLE*3); //设置最小空闲连接数为默认的2倍 poolConfig.setMinIdle(GenericObjectPoolConfig.DEFAULT_MIN_IDLE*2); //设置开启jmx功能 poolConfig.setJmxEnabled(true); //设置连接池没有连接后客户端的最大等待时间,毫秒 poolConfig.setMaxWaitMillis(5000); jedisPool=new JedisPool(poolConfig,"127.0.0.1",6379); } public static Jedis getRedisFormPool() {// Jedis jedis=new Jedis("127.0.0.1",6387);//生成Jedis对象 Jedis jedis = null; try { jedis = jedisPool.getResource(); } catch (Exception e) { System.err.println(e.getMessage()); } finally { if (jedis != null) { jedis.close(); } } return jedis; } /** * 利用管道流删除,节省请求时间,非原子性 * @param jedis * @param keys */ public static void mdel(Jedis jedis,List<String> keys){ Pipeline pipeline = jedis.pipelined(); for(String key:keys){ pipeline.del(key); } //执行命令 pipeline.sync(); //可返回执行结果// pipeline.syncAndReturnAll(); } public static void main(String[] args) { //System.out.println(getRedisFormPool().lrange("a",0,-1)); for(int i=0;i<9;i++){ //不执行redis.close(),可观察到因为连接数到达上限,先阻塞5s,然后报错 System.out.println("ping..."+i); getRedisFormPool().ping(); } }}
客户端异常
1.无法从连接池获得连接。
默认8个连接对象,在没关闭的情况继续去获得,等待maxWaitMillis(>0)后,抛出异常。
//设置连接池没有连接后客户端的最大等待时间,毫秒
poolConfig.setMaxWaitMillis(5000); public static Jedis getRedisFormPool() { Jedis jedis = null; try { jedis = jedisPool.getResource(); } catch (Exception e) { System.err.println(e.getMessage()); }/* finally { if (jedis != null) { jedis.close(); } }*/ return jedis; }
2.读写超时后,抛出SocketTImeoutException:Read timed out
3.连接超时后 ,抛出SocketTImeoutException:Connection timed out
0 0
- java连接redis
- Redis Java连接操作
- Redis Java连接使用
- Java连接Redis
- Java连接Redis
- java连接Redis
- java连接redis
- java接口连接redis
- Redis - Java连接
- Java连接Redis
- java连接redis原来如此。。。。
- 1 Java 连接redis
- java连接redis
- java 连接 redis
- JAVA连接Redis教程
- java连接Redis
- JAVA redis连接池
- java连接redis
- 关于如何解释机器学习的一些方法
- C++ primer plus 阅读记录-对象和类
- web布局
- jquery如何获取第一个或最后一个子元素?
- 服务器部署、配置JDK
- java连接Redis
- JSP页面中,JavaScript可以使用EL表达式吗?
- Laravel数据库操作的三种方式
- JSON与XML的区别比较
- BP神经网络的讲解
- TabLayout占不满屏幕所有宽度
- 51nod 1007 正整数分组(01背包)
- MD5加密算法工具类
- Android-json解析(一):Gson的使用