共享内存缓存节点的django问题
django problem with shared memcache nodes
我在两台服务器上有两个 Django 实例 运行,我正在使用 memcached 在我的应用程序中缓存一些数据。
每个服务器都安装了自己的 memcached,我希望我的两个应用程序都可以访问两个缓存,但我不能。当我在缓存中设置一个应用程序的值时,其他应用程序无法访问它
我的 memcached 实例是 运行 作为 root,我也尝试过 memcache 和其他用户,但它没有解决问题。
为了测试,我使用了 django shell,导入缓存 class:
from django.core.cache import cache
在缓存中设置一个值:
cache.set('foo', 'bar', 3000)
并尝试从我的另一个 Django 实例中获取价值:
cache.get('foo')
但它returns没什么!
这是我的 settings.py 文件:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
'LOCATION': [
'first app server ip:port',
'second app server ip:port']
}
}
和我的 memcached.conf(已删除评论):
-d
logfile /var/log/memcache/memcached.log
# -v
-vv
-m 512
-p 11211
-u root
-l 192.168.174.160
# -c 1024
# -k
# -M
# -r
-P /var/run/memcached/memcached.pid
设置中的位置顺序在所有服务器中必须相同。你能检查一下它们是否相同吗?
我在两台服务器上有两个 Django 实例 运行,我正在使用 memcached 在我的应用程序中缓存一些数据。 每个服务器都安装了自己的 memcached,我希望我的两个应用程序都可以访问两个缓存,但我不能。当我在缓存中设置一个应用程序的值时,其他应用程序无法访问它
我的 memcached 实例是 运行 作为 root,我也尝试过 memcache 和其他用户,但它没有解决问题。 为了测试,我使用了 django shell,导入缓存 class:
from django.core.cache import cache
在缓存中设置一个值:
cache.set('foo', 'bar', 3000)
并尝试从我的另一个 Django 实例中获取价值:
cache.get('foo')
但它returns没什么!
这是我的 settings.py 文件:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
'LOCATION': [
'first app server ip:port',
'second app server ip:port']
}
}
和我的 memcached.conf(已删除评论):
-d
logfile /var/log/memcache/memcached.log
# -v
-vv
-m 512
-p 11211
-u root
-l 192.168.174.160
# -c 1024
# -k
# -M
# -r
-P /var/run/memcached/memcached.pid
设置中的位置顺序在所有服务器中必须相同。你能检查一下它们是否相同吗?