本文摘自PHP中文网,作者尚,侵删。
应用在Redis重启、网络闪断并恢复正常后,应用必须能够自恢复,下面以Java语言的jedis客户端为例说明:
1、作为发布者
Jedis对象不能作为单例,网络闪断后该Jedis对象无法自恢复。应该每次发布消息时,从JedisPool中取Jedis对象,再调用set方法。
2、作为订阅者
当网络闪断后psubscribe()方法不再阻塞并抛出异常,所以可以使用while循环,在循环内部处理异常,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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){
}
}
|
更多redis知识请关注redis入门教程栏目。
以上就是redis断线重连的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
如何强制关闭Redis并重新启动
Redis实现批量删除的命令介绍
Redis缓存清理的方法
centos7.6安装mysql和Redis的教程
什么是Redis雪崩
Redis如何持久化
Redis限制ip访问次数的方法
Redis中5种数据类型基本命令介绍
Redis什么时候用list
探索Redis持久化原理
更多相关阅读请进入《Redis》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » redis断线重连