2013-03-15 24 views
3

我正在尋找一種方法來檢查redis實例(在具有默認端口的本地計算機上)是否正在運行。如果沒有,我想從我的python代碼開始。從python代碼控制本地redis服務器

+0

嘗試連接到它,看看你的連接被拒絕?詢問他們掌握的哨兵嗎?這裏有幾個選項。 – 2013-03-15 18:29:12

回答

3

如果你啓動一個redis客戶端,你可以先嚐試ping - 如果你得到一個redis.exceptions.ConnectionError那麼該服務可能沒有運行。下面是這種功能的一個例子。還有其他方法可以獲得相似或更強大的結果 - 這只是一種簡單的方法。另外請注意,這不會告訴您是否設置了特定的密鑰或有關Redis設置的任何信息。它只會告訴你本地主機上是否存在liveis服務器。

def redisLocalhostLive(): 
    redtest = redis.StrictRedis() # non-default ports could go here 
    try: 
     return redtest.ping() 
    except ConnectionError: 
     return False 
2

GAH,Pyrce打我了類似的回答。發佈反正:

import redis 

server = redis.Redis() 
try: 
    server.ping() 
except redis.exceptions.ConnectionError: 
    # your redis start command here 
1

一種方法是use 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