zoukankan      html  css  js  c++  java
  • Redis断线重连编码注意事项

    应用在Redis重启、网络闪断并恢复正常后,应用必须能够自恢复,下面以Java语言的jedis客户端为例说明:

    1、作为发布者

    Jedis对象不能作为单例,网络闪断后该Jedis对象无法自恢复。应该每次发布消息时,从JedisPool中取Jedis对象,再调用set方法。

    2、作为订阅者

         当网络闪断后psubscribe()方法不再阻塞并抛出异常,所以可以使用while循环,在循环内部处理异常,代码如下:

    while(true){
    
                Jedis redis = this.jedisPool.getResource();
    
                try{
    
                    redis.psubscribe(this, channelArray);
    
                }catch(JedisConnectionException e){
    
                    logger.warn("Exception :", e);
    
                    logger.warn("Exit redis psubscribe, retry after 1 second");
    
                }catch(Exception e){
    
                    logger.error("Exception:", e);
    
                }
    
                try{
    
                    Thread.sleep(1000);
    
                }catch(Exception unused){
    
                }
    
                try{
    
                    if(redis != null){
    
                        redis.close();
    
                    }
    
                }catch(Exception unused){
    
                }
    
            }
    欢迎转载,转载请务必注明出处
  • 相关阅读:
    Java 中的POJO和JavaBean 的区别
    设计模式的六大原则
    AOP
    Jetbrains 全家桶
    centos7 如何关闭防护墙
    Java 面试题常见范围
    putty readme
    单机环境
    flask-caching缓存
    1.restful 规范与APIView
  • 原文地址:https://www.cnblogs.com/mzsg/p/5593778.html
Copyright © 2011-2022 走看看