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的信息显示。
版权声明:本文为博主原创文章,转载请标明出处。

php安装扩展的几种方法

转自:http://doc3.workerman.net/appendices/install-extension.html 安装扩展 注意 与Apache+PHP或者Nginx+PHP的运行模...
  • abel004
  • abel004
  • 2016年12月31日 17:59
  • 11307

linux下编译安装php扩展

今天部署我的博客时出现了几个问题: 1.Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 2.Call to undefined function ...
  • somehow1002
  • somehow1002
  • 2017年05月29日 22:29
  • 345

php安装swoole扩展

swoole是一个PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncT...
  • qq_31648761
  • qq_31648761
  • 2016年12月13日 09:39
  • 3382

centos 安装php扩展的两种方法

centos 安装php扩展的两种方法
  • wanghao725
  • wanghao725
  • 2016年10月19日 15:41
  • 6976

windows下安装mongoDB扩展

windows环境下安装mongoDB的扩展
  • For_My_Own_Voice
  • For_My_Own_Voice
  • 2015年08月29日 17:00
  • 1293

linux 下安装redis以及php Redis扩展

环境配置: centos6.0 nginx/1.0.0 php/5.3.8 mysql/5.5.17 安装redis 步骤一、下载redis 可以去http://redis.io/去下载最新版本 ...
  • i_bruce
  • i_bruce
  • 2014年06月17日 15:06
  • 15390

Linux系统安装openssl扩展

linux 系统安装openssl扩展的方法 遇到的问题及解决方法
  • u011711636
  • u011711636
  • 2016年07月11日 13:59
  • 672

PHP安装扩展原理+php7的redis扩展安装

PHP7.0.0正式版发布有一段时间了,但是与之对应的扩展组件非常之少,特别是windows上用PHP7搭建开发平台,组件太少肯定是影响开发的。 目前PHP官网的PECL上日常用到的大部分PHP扩展...
  • xujingzhong0077
  • xujingzhong0077
  • 2017年06月05日 19:12
  • 550

window下安装php的imagick和imagemagick扩展教程

最近的PHP项目中,需要用到切图和缩图的效果,在linux测试服务器上很轻松的就安装好php imagick扩展。但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。1. 下载 I...
  • shaerdong
  • shaerdong
  • 2015年06月25日 17:48
  • 8972

centos7 安装memcached以及扩展

安装memcached yum install memcached 启动 memcached /usr/bin/memcached -d -m 64M -u root -l 192.1...
  • hwk_yellow
  • hwk_yellow
  • 2016年11月16日 10:41
  • 507
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memcached&php扩展安装
举报原因:
原因补充:

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