Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python php memcached和django memcached存储是否不同?_Python_Django_Caching_Memcached - Fatal编程技术网

Python php memcached和django memcached存储是否不同?

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

我试图在我的新Django项目中实现缓存,这里的问题是,缓存是通过PHP服务器设置的,我需要从Django代码中读取缓存。我可以在Django中设置缓存,在Django中读取,也可以在PHP中设置缓存,在PHP中读取。但是,我无法跨平台完成。i、 e.我无法读取PHP和Django中的缓存集,反之亦然。尽管如此,如果我使用telnet localhost 11211并获取这两个键,我只能获取PHP中设置的键。 我已经完成了一个pip安装python memcached安装,以便将memcached与python一起使用。 所以,我的问题是如何为Django和PHP使用公共缓存服务器

这是我的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中

在我们看来

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