问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Drupal7中配置Memcache

发布网友 发布时间:2022-04-27 00:22

我来回答

1个回答

热心网友 时间:2022-04-10 12:06

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/moles/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/moles/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
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
压轴是倒数第二的意思吗? DNF 感觉资料站的喷人的真是好多 大料是什么(大料是什么东西) 大哥户口迁出去二十多年现在还可可以享受到农田补贴吗? 不是本村人农田可以确权吗 农村户口转出老家农田可以种吗 丈夫去世后自动离婚吗? 光遇注销怎么申诉 旧的不去新的不来怎么造句 我想找一张恶魔的图片当纹身.天使类型的.3对翅膀都是张开的.手也是张开... 在抽象工厂模式中怎样使用memcached缓存数据 ...如何最优部署nginx+tomcat+memcached+mysql 怎么部署mysql和memcache的关系 memcached分布式部署中的容灾怎么解决 如何配置Memcached服务器 怎么合理的使用memcache缓存?如果缓存数据量过大怎么部署? csgo最便宜的紫皮 羊皮为什么这么便宜 二层绵羊皮的皮衣好吗?怎么那么便宜?一百多块两百多一件衣服?有懂行的说说。 时髦的女子想买件便宜的皮大衣,售货员别的都不推荐,偏偏推荐袋鼠皮大衣,你知道为什么袋鼠皮大衣最便宜吗? 便宜的皮草和贵的水貂有什么不一样 鸵鸟皮,珍珠鱼皮,马缰革,蜥蜴皮,蟒蛇皮,这几种哪种性价比高?便宜些? 皮草贵贱,什么皮毛最好.从贵到便宜.依次是什么 为什么有的牛皮包便宜有的很贵,牛头层皮是什么意思。有什么特别的? 什么皮料 可以进口的最便宜的 价格便宜的陈皮? 为啥快手上的皮草那么便宜 便宜的豆皮是什么做的 比较皮的m叫什么 为什么有的头层山羊皮皮衣很便宜的 如何采用Memcached实现分布式Session php的memcached分布式hash算法,如何解决分布不均?crc32这个算法没办法... php memcached和memcache 如何测试 memcached 高并发 memcached如何与mysql协同工作 Xcache和memcache选哪个好 memcache和mysql的区别 如何快速高效的更新memcached缓存数据 红米手机读不出内存卡怎么办? 2021重庆万州公租房公示名单 2021年桑植县公租房通过名单 呼和浩特市2021年公租房名单 手工编织女式中长款开衫需要多少羊毛线 2021年公租房最新公示名单呼市公租房摇号结果点么查 长款条绒毛领外套怎么搭配衣服图片 2021年涿州清凉寺公租房公示 知乎 在线制作ppt是用的什么工具?能在网页演示 针织狐狸毛卖长款二手多少钱 青海省西宁市城北区2021年十月二十六公租房公示名单 女士派克服长款整体貂毛活里活面长毛我一米六体重一百斤给我发图片看看多少钱?