我想實現緩存到我的新的Django項目,這裏的問題是,通過PHP服務器設置緩存,並且我需要從Django代碼讀取它。我可以在Django中設置緩存,並在Django中讀取,我也可以在PHP中設置緩存,並使用PHP讀取。但是,我無法跨平臺做到這一點。即我無法在Django中讀取PHP中設置的緩存,反之亦然。雖然,如果我執行telnet localhost 11211
並獲取這兩個鍵,我只能使用PHP設置鍵。 我已經完成了pip install python-memcached
的安裝以使用Memcached和Python。 所以,我的問題是我如何爲Django和PHP使用通用緩存服務器?php memcached和django memcached存儲有何不同?
這是我的PHP代碼段
$memObj = new Memcached();
$memObj->addServer('localhost', 11211);
$memObj->set('php_key', 'hello php');
var_dump($memObj->get('django_key')); #prints False
echo $memObj->get('php_key'); #prints 'hello php'
以下是我的Python/Django的片斷
在settings.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'localhost:11211',
}
}
在觀點,
from django.core.cache import cache
cache.set('django_key', 'Hello world')
php_cache = cache.get('php_key')
print(php_cache) # Outputs None
django_cache = cache.get('django_key')
print(django_cache) # Outputs 'Hello world'
在ubun恩終端
telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get php_key
VALUE php_key
hello php
END
get django_key
END
因此,django_key不能在memcached shell中工作? – lapinkoira
是的,只有'php_key'在memcached shell中工作 –