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

1 つのアプローチは、実行中のプロセスに関する情報を取得するためのクロスプラットフォームの方法を提供する Python モジュールであるpsutil を使用することです。

>>> 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 に答える