Python php memcached和django memcached存储是否不同?
我试图在我的新Django项目中实现缓存,这里的问题是,缓存是通过PHP服务器设置的,我需要从Django代码中读取缓存。我可以在Django中设置缓存,在Django中读取,也可以在PHP中设置缓存,在PHP中读取。但是,我无法跨平台完成。i、 e.我无法读取PHP和Django中的缓存集,反之亦然。尽管如此,如果我使用telnet localhost 11211并获取这两个键,我只能获取PHP中设置的键。 我已经完成了一个pip安装python memcached安装,以便将memcached与python一起使用。 所以,我的问题是如何为Django和PHP使用公共缓存服务器 这是我的PHP代码片段Python php memcached和django memcached存储是否不同?,python,django,caching,memcached,Python,Django,Caching,Memcached,我试图在我的新Django项目中实现缓存,这里的问题是,缓存是通过PHP服务器设置的,我需要从Django代码中读取缓存。我可以在Django中设置缓存,在Django中读取,也可以在PHP中设置缓存,在PHP中读取。但是,我无法跨平台完成。i、 e.我无法读取PHP和Django中的缓存集,反之亦然。尽管如此,如果我使用telnet localhost 11211并获取这两个键,我只能获取PHP中设置的键。 我已经完成了一个pip安装python memcached安装,以便将memcache
$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中
在我们看来
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'
在ubuntu终端中
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传递给memcached的密钥与调用cache.set时使用的密钥不完全相同 用户提供的缓存密钥不会被逐字使用,而是组合使用的 使用缓存前缀和密钥版本提供最终缓存密钥。通过 默认情况下,三个部分使用冒号连接以生成最终字符串
调整设置,或者创建自己的设置,以确保PHP键与django键匹配。这是因为django传递给memcached的键与调用cache.set时使用的键不完全相同 用户提供的缓存密钥不会被逐字使用,而是组合使用的 使用缓存前缀和密钥版本提供最终缓存密钥。通过 默认情况下,三个部分使用冒号连接以生成最终字符串
调整设置,或者创建自己的设置,以确保PHP键与django键匹配。那么django_键在memcached shell中不起作用?是的,只有PHP_键在memcached shell中起作用那么django_键在memcached shell中不起作用?是的,只有PHP_键在memcached shell中起作用,lemmi试一试。谢谢,祝你的项目一切顺利。我知道,lemmi试一试。谢谢,祝你的项目一切顺利
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