1.memcache服务端安装:
1)下载包libevent-1.4.14b-stable.tar.gz和memcached-1.4.5.ta.gz
tar zvxf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure --prefix=/usr
//默认路径安装,默认目录/usr/local/lib
make && make install
3) memcached服务端安装 下载地址(https://memcached.org/)
1
2
3
4
|
tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/usr/local/memcache/ --with-libevent=/usr
make & make install
|
启动:/usr/local/bin/memcached -d -m 512 -p 11211 -u root
-m 分配给Memcache使用的内存数量,单位是MB,默认64MB。
-l 监听的IP地址。(默认:INADDR_ANY,所有地址)
-p 设置Memcache的TCP监听的端口,最好是1024以上的端口。
-u 运行Memcache的用户,如果当前为root的话,需要使用此参数指定用户。
-c 选项是最大运行的并发连接数,默认是1024。
-P 设置保存Memcache的pid文件。
配置开机自启动
# vim /etc/init.d/memcached
#! /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=nobody 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 /var/run/memcached has proper permissions chown $USER /usr/local/java/memcached-1.5.9 daemon /usr/local/java/memcached-1.5.9/bin/memcached -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /usr/local/java/memcached-1.5.9/memcached.pid $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached } stop () { echo -n $"Stopping $prog: " killproc memcached RETVAL=$? echo if [ $RETVAL -eq 0 ] ; then rm -f /var/lock/subsys/memcached rm -f /usr/local/java/memcached-1.5.9/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/java/memcached-1.5.9 ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" exit 1 esac exit $?
并通过chmod命令赋予权限执行命令:chmod 755 /etc/init.d/memcached
将memcached加入系统服务
执行命令:
# chkconfig --add memcached
# chkconfig memcached on
启动memcached服务
执行命令:
# service memcached start
通过命令 ps -ef|grep memcached 查看memcached服务是否启动成功,如果没有成功,检查脚本里的memcached目录是否正确,或者memcached是否安装完整。
yum install cyrus-sasl-devel
下载libmemcached源码
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
1 cd /usr/local/src 2 wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz 3 tar zxvf libmemcached-1.0.18.tar.gz 4 cd libmemcached-1.0.18 5 ./configure --prefix=/usr/local/libmemcached 6 make && make install
安装php-fpm的memcached扩展
1 cd /usr/local/src 2 wget http://pecl.php.net/get/memcached-2.2.0.tgz 3 tar zxvf memcached-2.2.0.tgz 4 cd memcached-2.2.0
到了这一步,我们要使用安装php时生成的 phpize 来生成 configure 配置文件
1 /usr/local/php/bin/phpize \ 2 --with-php-config=/usr/local/php/bin/php-config 3 ./configure --with-php-config=/usr/local/php/bin/php-config \ 4 --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl 5 make && make install
--with-php-config 指定 php-config,该文件与 phpize 所在目录相同,
--with-libmemcached-dir 指定 libmemcached 安装目录,就刚才我们 --prefix 那个目录 ,
--disable-memcached-sasl 说明我们系统不支持sasl.h
如果安装成功,会提示:Installing shared extension:/usr/local/php/lib/extensions/no-debug-non-zts-20160524/ 等类信息
接下来,我们编辑php配置文件php.ini,把 php-memcached 扩展加到配置文件。
在 php.ini 中添加以下内容:
1 extension=memcached.so
最后重启nginx和php-fpm
重启完之后,检查是否安装完成php-memcached扩展
在nginx的web根目录下创建一个test.php文件
1 <?php 2 phpinfo(); 3 ?>
在浏览器中输入服务器ip地址
以上说明memcached的php扩展安装成功以。
php其他扩展均可根据此方法安装。
使用php简单操作memcached
其实 memcached 和 redis 、MySQL 是没什么两样,同是数据库,(redis是非关系数据库,mysql是关系数据库),因此使用也是差不多的,同样具有命令行使用和php操作使用,关于memcached的更多命令大家可以自行百度。
1 <?php 2 3 $mem=new Memcached(); //实例化Memcached类 4 $server=array( 5 array('127.0.0.1',11211), 6 ); 7 $mem->addServers($server); 8 9 $mem->set('name','zhangsan',15); ////设置缓存值,有效时间3600秒,如果有效时间设置为0,则表示该缓存值永久存在的(系统重启前) 10 echo $mem->get('name'); 11 12 ?>
参考:http://blog.csdn.net/baidu_30000217/article/details/51494007
1 <?php 2 3 $mem=new Memcached(); //实例化Memcached类 4 $server=array( 5 array('127.0.0.1',11211), 6 ); 7 $mem->addServers($server); 8 9 $mem->set('name','zhangsan',15); ////设置缓存值,有效时间3600秒,如果有效时间设置为0,则表示该缓存值永久存在的(系统重启前) 10 echo $mem->get('name'); 11 12 ?>
参考:http://blog.csdn.net/baidu_30000217/article/details/51494007