安装前准备,先安装编译需要到的包库文件
yum install libevent-devel libevent -y
1、安装Memcached
# tar vxzf memcached-1.1.12.tar.gz # cd memcached-1.1.12 # mkdir -p /usr/local/memcached # ./configure --prefix=/usr/local/memcached # make # make install
安装完之后要启动服务
# cd /usr/local/memcached/bin # ./memcached -d -m 50 -p 11211 -u root -c 1000 -P /tmp/memcached.pid
参数说明 -m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行;-c 指的最大并发连接数 ; -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
2、安装memcache PHP模块
# tar vxzf memcache-1.5.tgz # cd memcache-1.5 # /usr/local/php5/bin/phpize
//注意下面不一样
# ./configure --enable-memcache --with-php-config=/usr/local/php5/bin/php-config --with-zlib-dir # make # make install
安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
把这个记住,然后修改php.ini,把
extension_dir = "./" 修改为 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/" 并添加一行 extension=memcache.so
一个自动的脚本作为参考,可以自己修改下
编写memcached自启动脚本:
vi /initmemcached
#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# Source function library.
. /etc/rc.d/init.d/functions
PORT=11211
USER=cmreadwh
MAXCONN=1024
CACHESIZE=64
OPTIONS=""
if [ -f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi
# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
exit 0
fi
RETVAL=0
prog="memcached"
start () {
echo -n $"Starting $prog: "
# insure that /usr/local/memcached/bin/memcached has proper permissions
chown $USER /usr/local/memcached/bin/memcached
daemon /usr/local/memcached/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /tmp/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /usr/local/memcached/bin/memcached
}
stop () {
echo -n $"Stopping $prog: "
killproc memcached
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f /usr/local/memcached/bin/memcached
rm -f /tmp/memcached.pid
fi
}
restart () {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status memcached
;;
restart|reload)
restart
;;
condrestart)
[ -f /usr/local/memcached/bin/memcached ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
exit 1
esac
exit $?将此脚本cp到/etc/init.d目录下并改名为memcached,然后执行chmod a+x memcached,如下:
# cp init.memcached /etc/init.d/memcached # chmod 755 /etc/init.d/memcached
将memcached加入系统服务:
# chkconfig --add memcached # chkconfig memcached on
以服务方式运行memcached
# service memcached start
以上如成功则重启下系统后查看下memcached是否已随系统启动
测试memcache是否配置成功,我们可以用下面几段PHP代码测试一下
测试代码一:
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'Hello Memcached!', 0, 60);
$val = $mem->get('key');
echo $val;
?>测试代码二:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>n";
var_dump($get_result);
?>测试代码三
<?php
$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);
?>memcached的基本设置:
-p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助
接口介绍
Memcache客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考PHP手册 “LXXV. Memcache Functions” 这章。
Memcache面向对象的常用接口包括: Memcache::connect — 打开一个到Memcache的连接 Memcache::pconnect — 打开一个到Memcache的长连接 Memcache::close — 关闭一个Memcache的连接 Memcache::set — 保存数据到Memcache服务器上 Memcache::get — 提取一个保存在Memcache服务器上的数据 Memcache::replace — 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set) Memcache::delete — 从Memcache服务器上删除一个保存的项目 Memcache::flush — 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目) Memcache::getStats — 获取当前Memcache服务器运行的状态 Memcache::addServer — 分布式服务器添加一个服务器
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/187
评论列表