20

私が実行するpython manage.py shellと:

from django.core.cache import cache
cache.set("stack","overflow",3000)
print cache.get("stack")

(output: ) None

memcache を再起動してみましたが、私の設定は次のとおりです。

CACHES = { 
  'default' : { 
     'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
     'LOCATION' : '127.0.0.1:11211',
  }
}
4

2 に答える 2

3

Make sure it's using the correct cache. Try from django.core.cache import caches, and then see the contents of caches.all(). It should just have one instance of django.core.cache.backends.memcached.MemcachedCache.
If it is, try accessing that directly, e.g.

from django.core.cache import caches  
m_cache = caches.all()[0]
m_cache.set("stack","overflow",3000)
m_cache.get("stack")

This might not solve your problem, but will at least get you closer to debugging Memcached instead of Django's cache proxy or your configuration.

于 2015-08-05T20:50:19.670 に答える
0

django はキーをバージョンで補強すると思います。例えば、

django_memcache.set('my_key', 'django', 1000)

:1:my_keymemcacheにキーを設定します。

<36 set :1:my_key 0 1000 6
>36 STORED

ただし、telnet または python-memcached モジュールを介してキーを設定すると、期待どおりに未加工のキーが保存されます。

<38 set my_key 0 1000 13 
>38 STORED

では、正しいキーを照会していない可能性がありますか?

https://docs.djangoproject.com/en/1.10/topics/cache/#cache-key-transformationを参照してください

于 2016-08-18T19:22:29.070 に答える