我正在开发一个用于访问Redis服务器的Python服务(类)。我想知道如何检查Redis Server是否正在运行。还有,如果我不能连接到它。
下面是我的代码的一部分
import redis
rs = redis.Redis("localhost")
print rs
它输出以下内容
<redis.client.Redis object at 0x120ba50>
即使我的Redis服务器没有运行。
因为我发现只有在对redis实例执行set()或redis get()时,Python代码才会连接到服务器。
所以我不想让其他使用我的类的服务得到一个异常
redis.exceptions.ConnectionError: Error 111 connecting localhost:6379. Connection refused.
我想返回正确的消息/错误代码。我该怎么做呢??
发布于 2012-10-19 14:38:54
检查redis服务器可用性的官方方法是ping ( http://redis.io/topics/quickstart )。
一种解决方案是将redis子类化,然后做两件事:
在发出请求时没有连接的情况下,instantiation
发布于 2012-10-12 21:23:26
如果您想在启动时测试一次redis连接,请使用ping()
命令。
from redis import Redis
redis_host = '127.0.0.1'
r = Redis(redis_host, socket_connect_timeout=1) # short timeout for the test
r.ping()
print('connected to redis "{}"'.format(redis_host))
命令ping()
检查连接,如果无效,将引发异常。
发布于 2012-10-12 21:37:12
正如您所说,只有当您尝试在服务器上执行命令时,才会建立到Redis服务器的连接。如果您不想在不检查服务器是否可用的情况下继续前进,您可以只向服务器发送一个随机查询并检查响应。类似于:
try:
response = rs.client_list()
except redis.ConnectionError:
#your error handlig code here
https://stackoverflow.com/questions/12857604
复制相似问题