服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

Drupal7中配置Memcache方法详解

时间:2017-01-14 17:32来源: 作者: 点击:
Memcache的配置就不多说,drupal由于模块较多,数据库调用频繁,因此memcache是drupal站点中必备的配置,本文大概列一下Drupal7中关于memcache的配置情况,以方便大家查阅。 1.安装memcache服务以及启动
Memcache的配置就不多说,drupal由于模块较多,数据库调用频繁,因此memcache是drupal站点中必备的配置,本文大概列一下Drupal7中关于memcache的配置情况,以方便大家查阅。
 
1.安装memcache服务以及启动memcached.
 
2.安装drupal的memcache模块.(http://drupal.org/project/memcache)
 
3.配置settings.php
 
实例代码如下:
 
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; 
  // The 'cache_form' bin must be assigned no non-volatile storage. 
  $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; 
  $conf['cache_default_class'] = 'MemCacheDrupal'; 
  $conf['memcache_key_prefix'] = 'something_unique'; 
注意,需要将memcache.inc的文件路径写正确,如Drupal模块目录组织方式总结中提到,我们一般将memcache模块会放置在contrib文件夹下面,因此路径可能是 sites/all/modules/contrib/memcache/memcache.inc,此外memcache_key_prefix最好设置一下。
 
4.多个memcachd服务。
 
默认情况下,如果不配置memcache_servers以及memcache_bins的话,Drupal会认为只有一个server,即127.0.0.1:11211,如果有多个memcache实例的话,需要添加如下配置,代码如下:
 
$conf['memcache_servers'] = array( 
  '10.1.1.1:11211' => 'default', 
  '10.1.1.1:11212' => 'default', 
  '10.1.1.2:11211' => 'default', 
  '10.1.1.3:11211' => 'cluster2', 
  '10.1.1.4:11211' => 'cluster2' 
); 
$conf['memcache_bins'] = array( 
  'cache'  => 'default', 
  'cache_filter' => 'cluster2', 
  'cache_menu' => 'cluster2' 
); 
一切就绪,最后讲解一下单台机器如何配置多个memcache实例,即单台机器的memcache集群搭建。
 
我们需要修改2个文件,一个是启动脚本/etc/init.d/memcached-multi,另一个是配置文件/etc/sysconfig/memcached,代码如下:
 
/etc/sysconfig/memcached
 
是用来配置多个memcache实例的大小,代码如下:
 
PORT="11211" 
USER="memcached" 
MAXCONN="1024" 
CACHESIZE="512" 
OPTIONS="" 
MULTIBUCKET="2" 
CACHESIZEARRAY[1]="1024" 
CACHESIZEARRAY[2]="128"/etc/init.d/memcached-multi 
是用来启动memcache集群,(start、stop、restart),代码如下:
 
#! /bin/sh 
# chkconfig: - 55 45 
# description:    The memcached daemon is a network memory cache service. 
# processname: memcached 
# config: /etc/sysconfig/memcached 
# pidfile: /var/run/memcached/memcached.pid 
 
# Standard LSB functions 
#. /lib/lsb/init-functions 
 
# Source function library. 
. /etc/init.d/functions 
 
PORT=11211 
USER=memcached 
MAXCONN=1024 
CACHESIZE=64 
OPTIONS="" 
MULTIBUCKET="" 
 
if [ -f /etc/sysconfig/memcached ];then 
    . /etc/sysconfig/memcached 
fi 
 
[ -z "$MULTIBUCKET" ] && MULTIBUCKET=1 
 
# Check that networking is up. 
. /etc/sysconfig/network 
 
if [ "$NETWORKING" = "no" ] 
then 
    exit 0 
fi 
 
RETVAL=0 
prog="memcached" 
 
start () { 
    echo -n $"Starting $prog: " 
    # insure that /var/run/memcached has proper permissions 
    if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then 
        chown $USER /var/run/memcached 
    fi 
 
    for i in `/usr/bin/seq 1 $MULTIBUCKET`; do 
        THISCACHESIZE=$CACHESIZE 
        [ ${#CACHESIZEARRAY[*]} -gt 0 -a ${CACHESIZEARRAY[$i]:-0} -gt 0 ] && THISCACHESIZE=${CACHESIZEARRAY[$i]} 
        daemon --pidfile /var/run/memcached/memcached.pid memcached -d -p $PORT -u $USER  -m $THISCACHESIZE -c $MAXCONN -P /var/run/memcached/memcached-$i.pid $OPTIONS 
        let RETVAL=$RETVAL+$? 
        let PORT=$PORT+1 
    done 
    echo 
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached 
stop () { 
    echo -n $"Stopping $prog: " 
    for i in `/usr/bin/seq 1 $MULTIBUCKET`; do 
        killproc -p /var/run/memcached/memcached-$i.pid /usr/bin/memcached 
        let RETVAL=$RETVAL+$? 
    done 
    echo 
    if [ $RETVAL -eq 0 ] ; then 
        rm -f /var/lock/subsys/memcached 
        rm -f /var/run/memcached.pid 
    fi 
 
restart () { 
        stop 
        start 
 
# See how we were called. 
case "$1" in 
  start) 
    start 
    ;; 
  stop) 
    stop 
    ;; 
  status) 
    echo "Warning: This status check is laughable.  Inspect netstat or ps output manually." 
    status memcached 
    ;; 
  restart|reload|force-reload) 
    restart 
    ;; 
  condrestart) 
    [ -f /var/lock/subsys/memcached ] && restart || : 
    ;; 
  *) 
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" 
    exit 1 
esac
exit $RETVAL 
至此一些就绪.
(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容