【发布时间】:2016-01-18 14:45:30
【问题描述】:
我一直在关注this tutorial,以便可以在 Heroku 上的应用程序中使用 Memcache。但是,我在 Heroku 的 shell 中使用 cache.get() 时遇到了问题(它在我这边工作正常):
File "/app/.heroku/python/lib/python3.4/site-packages/django_pylibmc/memcached.py", line 92
except MemcachedError, e:
^
SyntaxError: invalid syntax
我看到了this question,他和我有同样的问题。我的settings.py 看起来像这样:
def get_cache():
import os
try:
os.environ['MEMCACHE_SERVERS'] = os.environ['MEMCACHIER_SERVERS'].replace(',', ';')
os.environ['MEMCACHE_USERNAME'] = os.environ['MEMCACHIER_USERNAME']
os.environ['MEMCACHE_PASSWORD'] = os.environ['MEMCACHIER_PASSWORD']
return {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'TIMEOUT': 500,
'BINARY': True,
'OPTIONS': { 'tcp_nodelay': True }
}
}
except:
return {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'
}
}
所以我用django.core.cache.backends.memcached.PyLibMCCache 替换了django_pylibmc.memcached.PyLibMCCache。然而,当我再次尝试cache.get("foo") 时,我得到了一个不同的错误:
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/cache/backends/memcached.py", line 84, in get
val = self._cache.get(key)
_pylibmc.ConnectionError: error 3 from memcached_get(:1:foo): (0x1c4ed40) CONNECTION FAILURE, host: localhost:11211 -> libmemcached/get.cc:314
有人可以帮我吗?我需要更改某些设置吗?
【问题讨论】: