displayabc
V2EX  ›  Redis

redis 如何检测连接已经断开?

  •  1
     
  •   displayabc · Aug 8, 2014 · 15338 views
    This topic created in 4337 days ago, the information mentioned may be changed or developed.
    使用的python的客户端,添加了订阅事件,网络连接突然断了,但是代码还在正常运行,也没报错,如何能快速检测到当前客户端已经与redis的连接已经断开了呢?或者让代码报错也行
    Supplement 1  ·  Aug 8, 2014
    我发现redis-py 的pubsub如果断网之后再联网,会再自动连接上redis,但是如果断开不提示
    7 replies    2014-08-09 22:11:02 +08:00
    yibin001
        1
    yibin001  
       Aug 8, 2014
    定时发ping命令?
    Zuckonit
        2
    Zuckonit  
       Aug 8, 2014
    这个问题我也遇到, 不过我是通过定时去取某一个key来判断是否存活
    vjnjc
        3
    vjnjc  
       Aug 8, 2014
    @Zuckonit +1,我也這麼做,不過感覺不太科學
    skybr
        4
    skybr  
       Aug 8, 2014
    我试了下, listen之后stop掉redis-server会报ConnectionError啊
    displayabc
        5
    displayabc  
    OP
       Aug 8, 2014
    @skybr 我说的是网络断开的情况,不是关闭redis
    mengskysama
        6
    mengskysama  
       Aug 9, 2014
    @skybr 这个是正确断开的情况,这个会发送一个正确关闭的包的。网络断开是没办法探测到的。

    这个不好搞的
    Zuckonit
        7
    Zuckonit  
       Aug 9, 2014
    @vjnjc 这样类似heartbeat, 挺科学的, API里也没有好用的方法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:02 · PVG 03:02 · LAX 12:02 · JFK 15:02
    ♥ Do have faith in what you're doing.