memcached&php扩展安装

原创 2015年11月21日 16:58:02

安装memcached

memcached存储的方式是key=>value的方式,即键值对的方式。
memcached是memcache的一个升级版,官方主页是memcached.org,可以直接到官方主页去下载tar包,现在最新的版本是1.4.24,我使用的环境为Centos7.0,已安装LNMP环境。

//解压&配置&编译&安装
tar -zxf memcached-1.4.24.tar.gz 
cd memcached-1.4.24
./configure --prefix=/usr/local/memcached
make && make install

安装时指定的路径是/usr/local/memcached目录,并没有在系统的搜索路径内产生可执行文件,为了可以在shell下直接运行memcached来操作,需要设置一个连接,就把它连接到/usr/sbin/目录下。

ln -s /usr/local/memcached/bin/memcached /usr/sbin/memcached

现在安装已经完成,尝试启动memcached

memcached -u root -d

-u :指定启动的用户;
-d:在后台运行;
-p :指定监听的端口号,缺省是11211;
-m :最大可用内存,单位是MB,缺省是64MB;
-c :软连接数量,缺省是1024;
-v:输出警告和错误信息;
-vv:打印客户端的请求和返回信息。

对memcached进行测试需要安装telnet,通过yum -y install telnet进行安装,安装完成后进行连接:

# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

出现如上的显示,则表示memcached已安装并连接成功,来测试一下:

# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set name 1 0 5
liang
STORED
get name
VALUE name 1 5
liang
END

set name 1 0 5:设置一个key为name的值,长度为5,标志为1,时长为永久(这个永久是相对而言的,memcached是存在于缓存当中,当断电后数据会丢失;同时,即使在不断电的情况下,当memcached被分配的内存页使用尽时,也可能会为了存储新的内容而将这个键值对删除掉。memcached使用的内存页置换算法是LRU,即Least Recent Used近期最少使用算法)。
get name:获取key=name的值。
quit:退出。

安装memcached的php扩展

要在php中使用memcached,就需要安装memcached的php扩展。memcached的php扩展分为两种,分别是memcache与memcached,我们选择安装的是memcached,它依赖于libmemcached,所以需要先安装libmemcached。

为什么选择memcached扩展
在上一节安装的是memcached-1.4.24版本,memcached在1.2.4版本及以后增加了CAS(Check And Set)协议,用来处理同一个key的多进程并发处理问题。而memcache扩展并不支持CAS,所以选择memcached扩展。

网站
pecl.php.net是php的扩展包网站,memcached扩展包可以在上面找到,我用的是memcached-2.2.0。
libmemcached包在这个网站上并没有找到,可以百度搜索一下就能找到,我用的是libmemcached-1.0.18。

安装步骤

//先安装libmemcached
tar -zxf libmemcached-1.0.18.tar.gz 
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached
make && make install

下面安装memcached-2.2.0扩展包,要注意的是解压后的目录中并没有configure文件,需要先切入解压后的目录,然后执行/usr/local/php/bin/phpize(/usr/local/php是我的系统php的安装目录)来生成configure文件。
在配置时,需要指定几个参数:
-with-php-config=/usr/local/php/bin/php-config:指定php的配置路径;
-with-libmemcached-path=/usr/local/libmemcached:指定libmemcached路径;
–disable-memcached-sasl:跳过验证,不加这个参数的话在centos7中会报错误。

 tar -zxf memcached-2.2.0.tgz 
 cd memcached-2.2.0
 /usr/local/php/bin/phpize 
 ./configure -enable-memcached -with-php-config=/usr/local/php/bin/php-config -with-libmemcached-dir=/usr/local/libmemcached/ -prefix=/usr/local/phpmemcached --disable-memcached-sasl
make && make install

编译安装完成后,还需要修改一下php的配置文件php.ini,在里面加上一行extension = “memcached.so”
写个测试例子测试一下(vi /home/wwwroot/default/test.php):

<?php
$mem = new Memcached();
$mem->addServer('127.0.0.1',11211);
$mem->set('company','inspur BJ');
$var = $mem->get('company');
echo $var;

运行如下:

[root@localhost default]# php test.php 
inspur BJ

注意的问题

  1. memcached单个进程最大使用的内存为2G,要使用更多内存,可以分多个端口启动多个memcached进程;
  2. 最大的数据过期时间是30天,即使设置为永久也会在这个时间过期,常量REALTIME_MAXDELTA 60*60*24*40控制;
  3. 最大key长度为250字节,大于该长度则无法存储,常量KEY_MAX_LENGTH 250控制;
  4. 单个item的最大数据是1MB,超过1MB的数据不存储,常量POWER_BLOCK 1048576控制,它是默认的slab大小;
  5. 参数-c num用来指定最大同时连接,缺省为1024
  6. 查看memcached工作状态,使用stats
  7. 禁用LRU机制,在启动时添加-M参数,禁用后在分配的内存耗尽时会返回错误,不建议禁用;
  8. 想要使用线程模式,启动memcached时需要加上-t num参数来指定需要支持的线程数量,缺省是4
  9. 参数-f num可以设置chunk size growth factory(块尺寸增长因子),缺省值为1.25,启动时增加-f 2 -vv参数可以看到设置为2的信息显示。
版权声明:本文为博主原创文章,转载请标明出处。

相关文章推荐

CentOS 下编译安装php memcached扩展

memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展 性。memcached 是以守护程序方式运行在服...

在Linux上安装Memcached服务和php扩展

下载并安装Memcache服务器端 服务器端主要是安装memcache服务器端. 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar....

如何在Linux下安装php-memcached扩展

在Linux下的php memcached扩展叫做memcached.so,安装memcached.so有两种方式,一种是使用源码编译安装、一种是使用PECL安装。 安装完此扩展后,PHP才能和mem...

基于libmemcached,php扩展memcached的安装

一,为什么要装memcached扩展 memcached的1.2.4及以上增加了CAS(Check and Set)协议,对于同一key的多进行程的并发处理问题。这种情况其实根数据库很像,如果同时有...

Linux基于libmemcached,php扩展memcached的安装

安装环境:CentOS 6.4    php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmem...

Windows 下 PHP memcached扩展安装

Windows 下 PHP memcached扩展安装 图文教程

centos6 yum安装memcached及php memcache扩展

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 开始安装memcache 1、查找Memcached yum search memcached...

nginx+php(包含mcrypt bcmath zendguardloader mysqli memcached redis扩展)安装配置手册

说明: 1、公司用的web服务器一直是tomcat,前段时间开始转nginx,为此搭建了一套nginx+php的环境; 2、安装过程中出现各类问题,特别是php各个扩展包的安装,网上的教程许多不是很完...

window下安装php memcached扩展

window下安装php memcached扩展

关于Windows7 下面安装memcached和php的memcache扩展

Php代码与memcached的交互和与mysql的交互原理是一样的,需要安装一个服务器端的memcached,现有的交互处理过程已经封装成了一个php的扩展了;需要在php.ini中,将这个扩展加进...
  • kdchxue
  • kdchxue
  • 2014年10月03日 10:31
  • 1945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memcached&php扩展安装
举报原因:
原因补充:

(最多只允许输入30个字)