• 使用 memcached
    • 使用单节点memcached
    • 使用memcached集群

    使用 memcached

    安装 Memcached 能够显著提高系统性能。

    首先你需要保证 libmemcached 库已经安装在你的系统中。要想使用memcached集群,我们要求使用 1.0.18 或者更新的版本。

    使用单节点memcached

    在CentOS 7 上

    1. sudo yum install gcc libffi-devel python-devel openssl-devel libmemcached libmemcached-devel
    2. sudo pip install pylibmc
    3. sudo pip install django-pylibmc

    将以下配置添加到 seahub_settings.py 中:

    1. CACHES = {
    2. 'default': {
    3. 'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
    4. 'LOCATION': '127.0.0.1:11211',
    5. }
    6. }

    最后重启 Seahub 以使更改生效:

    1. ./seahub.sh restart

    如果更改没有生效,请删除seahub_setting.pyc缓存文件.

    使用memcached集群

    在 Ubuntu 16.04 或者更新的系统上,可以直接使用 apt-get 来安装。

    1. sudo apt-get install libmemcached-dev

    在其他比较老的系统,比如 CentOS 7 或者 Ubuntu 14.04 上,你需要从源代码编译安装这个库。

    1. sudo apt-get install build-essential # or sudo yum install gcc gcc-c++ make openssl-devel libffi-devel python-devel
    2. wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
    3. tar zxf libmemcached
    4. cd libmemcached-1.0.18
    5. ./configure
    6. make
    7. sudo make install

    然后安装相关的 Python 库。

    1. sudo pip install pylibmc
    2. sudo pip install django-pylibmc

    使用的是 memcached 集群(即同时使用多台 memcached 服务器),CACHES 变量应该设置如下。这个配置使用一致性哈希的方式把 key 分布在多个 memcached 服务器上。更多的信息可以参考 pylibmc 文档 和 django-pylibmc 文档

    1. CACHES = {
    2. 'default': {
    3. 'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
    4. 'LOCATION': ['192.168.1.134:11211', '192.168.1.135:11211', '192.168.1.136:11211',],
    5. 'OPTIONS': {
    6. 'ketama': True,
    7. 'remove_failed': 1,
    8. 'retry_timeout': 3600,
    9. 'dead_timeout': 3600
    10. }
    11. }
    12. }

    最后重启 Seahub 以使更改生效:

    1. ./seahub.sh restart

    如果更改没有生效,请删除seahub_setting.pyc缓存文件.