Django中的Redis:redis.exceptions.ConnectionError:错误-2连接到127.0.0.1:20789:0。名称或服务不知道

问题描述:

我使用Django的缓存Redis的,和我被困在以下悖论:Django中的Redis:redis.exceptions.ConnectionError:错误-2连接到127.0.0.1:20789:0。名称或服务不知道

# in `python manage.py shell` 
import redis 
r = redis.StrictRedis(host='127.0.0.1', port=20789, db=0) 
r.set('foo', 'bar') # returns True 

from django.core.cache import cache 
cache.set('foo', 'bar', 1) # raises redis.exceptions.ConnectionError 

Traceback (most recent call last): redis.exceptions.ConnectionError: Error -2 connecting to 127.0.0.1:20789:0. Name or service not known.

注意主机,端口和DB是相同的在这两种情况下。

使用import redis已经是一个调试;使用redis-ctl也可以。我也尝试从127.0.0.1更改为localhost,根据this question,没有成功。

任何想法可能是什么?

CACHES配置已经是最小的一个:

CACHES = { 
    'default': { 
     'BACKEND': 'redis_cache.cache.RedisCache', 
     'LOCATION': '127.0.0.1:20789:0', 
     'TIMEOUT': 60*60*24, 
    } 
} 

我猜,但你必须:

'LOCATION': '127.0.0.1:20789:0' 

而自述Django的Redis的缓存规定:

'LOCATION': '<host>:<port>' 

即没有:<db>到底

https://github.com/sebleier/django-redis-cache

+0

废话。我从Django-Celery中得到了这个符号:'BROKER_URL ='redis://127.0.0.1:20789/0''错误。谢谢! –