redis断线重连


本文摘自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》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...