我正在开发一个用于访问 Redis 服务器的 Python 服务(类)。我想知道如何检查 Redis 服务器是否正在运行。而且如果我无法连接到它。
这是我的代码的一部分
import redis
rs = redis.Redis("localhost")
print rs
它打印以下内容
<redis.client.Redis object at 0x120ba50>
即使我的 Redis 服务器没有运行。
我发现我的 Python 代码只有在我对我的 redis 实例执行 set() 或 get() 时才会连接到服务器。
所以我不希望其他服务使用我的类得到异常提示
redis.exceptions.ConnectionError: Error 111 connecting localhost:6379. Connection refused.
我想返回正确的消息/错误代码。我该怎么做??
最佳答案
如果要在启动时测试一次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()
命令检查连接,如果无效将引发异常。
- 注意 - 执行测试后连接可能仍会失败,因此这不会掩盖以后的超时异常。
关于Python - 如何检查 Redis 服务器是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857604/