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主从模式是集群吗

php+Redis实现加锁与解锁操作

Redis分布式锁的正确实现方式介绍

Redis协议是什么样的

Redis怎么持久化数据

Redis启动停止与查看Redis端口的方法

Redis如何做分页

linux下Redis的安装步骤详解

Redis怎么通过命令行批量删除key

什么是布隆过滤器?Redis中如何使用?

更多相关阅读请进入《Redis》频道 >>


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

数据库系统概念 第6版

机械工业出版社

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



打赏

取消

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

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

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

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

评论

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