V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
displayabc
V2EX  ›  Redis

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

  •  1
     
  •   displayabc · 2014 年 8 月 8 日 · 15149 次点击
    这是一个创建于 4181 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用的python的客户端,添加了订阅事件,网络连接突然断了,但是代码还在正常运行,也没报错,如何能快速检测到当前客户端已经与redis的连接已经断开了呢?或者让代码报错也行
    第 1 条附言  ·  2014 年 8 月 8 日
    我发现redis-py 的pubsub如果断网之后再联网,会再自动连接上redis,但是如果断开不提示
    7 条回复    2014-08-09 22:11:02 +08:00
    yibin001
        1
    yibin001  
       2014 年 8 月 8 日
    定时发ping命令?
    Zuckonit
        2
    Zuckonit  
       2014 年 8 月 8 日
    这个问题我也遇到, 不过我是通过定时去取某一个key来判断是否存活
    vjnjc
        3
    vjnjc  
       2014 年 8 月 8 日
    @Zuckonit +1,我也這麼做,不過感覺不太科學
    skybr
        4
    skybr  
       2014 年 8 月 8 日
    我试了下, listen之后stop掉redis-server会报ConnectionError啊
    displayabc
        5
    displayabc  
    OP
       2014 年 8 月 8 日
    @skybr 我说的是网络断开的情况,不是关闭redis
    mengskysama
        6
    mengskysama  
       2014 年 8 月 9 日
    @skybr 这个是正确断开的情况,这个会发送一个正确关闭的包的。网络断开是没办法探测到的。

    这个不好搞的
    Zuckonit
        7
    Zuckonit  
       2014 年 8 月 9 日
    @vjnjc 这样类似heartbeat, 挺科学的, API里也没有好用的方法。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:17 · PVG 12:17 · LAX 20:17 · JFK 23:17
    ♥ Do have faith in what you're doing.