Python - 如何检查 Redis 服务器是否可用

标签 python redis

我正在开发一个用于访问 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/

相关文章:

redis - 将 Redis 的 set-max-intset-entries 设置太大的缺点?

caching - Redis作为分布式网络中的缓存

python - 无法访问在GCE上运行在0.0.0.0上的Flask应用程序

python - 组合来自 for 循环的响应并将它们导出到附加列中以 excel

java - Spring @Cacheable 使用 hset

ruby - 知道 resque worker 何时完成工作

redis - 如何查找 Redis 中最旧项目的年龄?

一个进程中的Python命令行输入

java - IntelliJ Python 插件

python - 通过仅下载网页的相关部分来抓取标题