2013-03-15 2 views
3

Я ищу способ проверить, работает ли экземпляр redis (на локальном компьютере с портом по умолчанию) или нет. Если нет, я хочу запустить его из моего кода на Python.Управление локальным сервером redis из кода python

+0

Попробуйте подключиться к нему и посмотреть, было ли отказано в вашей связи? Спросите стражников, о которых они знают? Здесь есть несколько вариантов. –

ответ

3

Если вы запустите клиент redis, вы можете сначала попробовать выполнить ping - если вы получите redis.exceptions.ConnectionError, то служба, вероятно, не работает. Ниже приведен пример такой функции. Существуют и другие способы получить аналогичный или более надежный результат - это простой подход. Также обратите внимание, что это не говорит вам, настроен ли какой-либо конкретный ключ или что-то в настройке redis. Это только говорит вам, есть ли live redis-сервер на localhost или нет.

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 
Смежные вопросы