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>
到底
废话。我从Django-Celery中得到了这个符号:'BROKER_URL ='redis://127.0.0.1:20789/0''错误。谢谢! –