uwsgi多进程运行django项目内存不共享问题处理

一个进程内的线程可以共享内存,但是多个进程之间内存是隔离的,所以使用uwsgi多进程运行django项目的时候,需要想办法共享内存,办法之一就是使用外部缓存memcache,下面介绍memcache配置办法:

1,安装memcache
sudo apt-get install memcached

2,安装python的memcached支持
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz
解压,进入目录
python setup.py install

3,配置memcached
由于memcached不能用root帐号启动服务,所以要创建一个非root帐号
adduser memcache

4,运行memcached
memcached -umemcache -d

命令说明
选项说明
-p使用的TCP端口。默认为11211
-m最大内存大小。默认为64M
-vv用very vrebose模式启动,调试信息和错误输出到控制台
-d作为daemon在后台启动
-c最大运行的并发连接数,默认是1024,按照服务器的负载量来设定
-P设置保存Memcache的pid文件
-l监听的服务器IP地址,如果有多个地址的话
-u运行Memcache的用户,默认不能用root启动,所以当前用户为root用户时,需要用-u参数来指定

关闭
kill ‘cat /var/run/memcached.pid’

测试连接
$ telnet localhost 11211
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
set foo 0 0 3 (保存命令)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar (数据)

5,配置django
在项目的settings.py中增加或修改
CACHE_BACKEND = ‘memcached://127.0.0.1:11211/’
如果有多台服务器做缓存,则可以
CACHE_BACKEND = ‘memcached://172.19.26.240:11211;172.19.26.242:11211/’

猜你喜欢

转载自blog.csdn.net/sinat_26809255/article/details/121136937