3

我正在寻找一种方法来检查 redis 实例(在具有默认端口的本地计算机上)是否正在运行。如果没有,我想从我的 python 代码开始。

4

3 回答 3

4

如果你启动了一个 redis 客户端,你可以先尝试 ping——如果你得到一个,redis.exceptions.ConnectionError那么服务可能没有运行。以下是此类功能的示例。还有其他方法可以获得类似或更可靠的结果——这只是一种简单的方法。另请注意,这不会告诉您是否设置了特定密钥或有关 redis 设置的任何信息。它只会告诉您本地主机上是否有实时 redis 服务器。

def redisLocalhostLive():
    redtest = redis.StrictRedis() # non-default ports could go here
    try:
        return redtest.ping()
    except ConnectionError:
        return False
于 2013-03-15T18:46:58.723 回答
2

gah,Pyrce 击败了我,给出了类似的答案。无论如何发布:

import redis

server = redis.Redis()
try:
    server.ping()
except redis.exceptions.ConnectionError:
    # your redis start command here
于 2013-03-15T19:05:30.057 回答
1

一种方法是使用 psutil,这是一个 Python 模块,它提供了一种跨平台的方式来检索正在运行的进程的信息。

>>> import psutil
>>> processes = psutil.process_iter()   # Get all running processes
>>> if any(process.name == 'redis-server' for process in processes):
...     print "redis is running"
... 
redis is running
于 2013-03-15T19:12:06.197 回答