当无法连接到python-memcached服务器时,如何进行检查的方法

我正在使用Python的memcached,但连接的服务器挂了,但是处理仍在继续,让我有些困扰。

cause/reason

    def _set(self, cmd, key, val, time, min_compress_len = 0):
        self.check_key(key)
        server, key = self._get_server(key)
        if not server:
            return 0

当设置为set时,即使服务器不存在,也会返回0。

    def _get(self, cmd, key):
        self.check_key(key)
        server, key = self._get_server(key)
        if not server:
            return None

不管是否进行了GET请求,也不管服务器是否存在,结果都会返回None。

如果这样的话,无法确定是实际的值未被设置为None,还是服务器不存在而为None。

解决方案

我认为这不是正确的翻译,但是因为还能辨认出来,所以就先这样吧。

client = memcache.Client(['192.168.1.1:11211'])

if len(client.get_stats()) == 0:
    raise Exception('Kestrel server not connected.')

stats()函数会获取每台服务器的状态,但如果服务器没有连接,则不会获取其状态。

我考虑将寿命缩短并设置值,然后检查是否返回0… 但考虑到服务器的连接次数,也许那样更好?w

如果有什么好的方法,请大家教教我吧。