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

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

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

    这个不好搞的
    Zuckonit
        7
    Zuckonit  
       2014-08-09 22:11:02 +08:00
    @vjnjc 这样类似heartbeat, 挺科学的, API里也没有好用的方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2527 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.