Drupal7中配置Memcache方法詳解_PHP教程

來源:互聯網
上載者:User
本文章來給各位同學詳細介紹關於Drupal7中配置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

至此一些就緒。

http://www.bkjia.com/PHPjc/631492.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631492.htmlTechArticle本文章來給各位同學詳細介紹關於Drupal7中配置Memcache方法詳解,希望此方法對各位同學會有所協助哦。 Memcache的配置就不多說,drupal由於模...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.