새로운 Django 프로젝트에 캐싱을 구현하려고하는데 문제는 여기에 캐시가 PHP 서버를 통해 설정되어 있고 장고 코드에서 읽어야합니다. Django에서 캐시를 설정할 수 있고 Django에서 읽었을 때 PHP에서 캐시를 설정하고 PHP에서 읽을 수 있습니다. 그러나, 나는 그것을 크로스 플랫폼으로 할 수 없다. 즉 PHP에서 Django의 캐시 세트를 읽을 수 없으며 반대의 경우도 마찬가지입니다. 비록 내가 telnet localhost 11211
을 수행하고 두 키를 모두 가져 오는 경우, 나는 PHP에서 설정된 키만 가져올 수 있습니다. Memcached with Python을 사용하기 위해 pip install python-memcached
설치를 수행했습니다. 그럼, 내 질문에 어떻게 장고와 PHP 모두에 대한 일반적인 캐시 서버를 사용합니까? 여기 php memcached와 django memcached 스토리지가 다릅니 까?
settings.py
뷰에서
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'localhost:11211',
}
}
에서
을 니펫 다음 코드
$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'
, ubun에서
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'
입니다 TU 터미널
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
그래서 memcached 쉘에서 django_key가 작동하지 않습니까? – lapinkoira
예, memcached 쉘에서'php_key' 만 작동합니다. –