php5.3安装libmemcached 扩展方法与简单实例
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-25 17:08:55 浏览: 评论:0
libmemcached 是一个 memcached 的库,客户端库,C 和 C++ 语言实现的客户端库,具有低内存占用率、线程安全、并提供对memcached功能的全面支持,它还采用 多种命令行工具:memcat,memflush,memrm, memstat,并memslap(负载代),程序库一直在设计,让不同的散列方法对密钥,分割的钥匙,并使用统一的散列分配.
基于libmemcached的php memcache client有很多优势.
•hash一致性存储
•multi get/set
•自动把key hash 为int,避开了memcache key字符串默认小于255Byte的限制,好久没有配置服务器,一直以为libmemcached的php memcached 已经纳入基本安装包了,到头来还需要自己编译,整个安装过程很多暗坑,尝试了几次才成功.
安装分两步:
•安装libmemcached,目标是so和header文件
•安装memcachedphp extensions
libmemcaced 分为两大版本0.x和1.x,1.x的版本从2011-09-28开始,编译很麻烦,需要gcc4.0以上的专门配置,compile无比慢,0.x版本就简单很多,最高版本是0.53,所以选择安装0.53.
极品总是成对出现,php的memcahed也从2.1.0开始,要求libmemcached 必须是1.0.x版本,libmemcaced我用的0.53,那php-memcahed 就选择2.0.0,开源软件的版本维护是一团烂帐.
安装libmemcached,代码如下:
- wget https://launchpad.net/libmemcached/1.0/0.53/+download/libmemcached-0.53.tar.gz
- tar xvfz libmemcached-0.53.tar.gz
- cd libmemcached-0.53
- ./configure --prefix=/opt/libmemcached
- make && make install
安装php扩展,代码如下:
- wget http://pecl.php.net/get/memcached-2.0.0.tgz
- tar zvxf memcached-2.0.0.tgz
- cd memcached-2.0.0/
- ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/opt/libmemcached/
- make && make install
make install 是把memcached.so 安装到 ${php install dir}/extensions/no-debug-non-zts-20090626/,这个目录随着php的版本不同而不同.
最后一步,修改php.ini,加上 extension=memcached.so,与我们己安装好了来看看简单的实例,代码如下:
- #include <iostream>
- #include <string>
- #include <libmemcached/memcached.h>
- using namespace std;
- int main(int argc,char *argv[])
- {
- //connect server
- memcached_st *memc;
- memcached_return rc;
- memcached_server_st *server;
- time_t expiration;
- uint32_t flags;
- memc = memcached_create(NULL);
- server = memcached_server_list_append(NULL,"localhost",11211,&rc);
- rc=memcached_server_push(memc,server);
- memcached_server_list_free(server);
- string key = "key";
- string value = "value";
- size_t value_length = value.length();
- size_t key_length = key.length();
- //Save data
- rc=memcached_set(memc,key.c_str(),key.length(),value.c_str(),value.length(),expiration,flags);
- 29 if(rc==MEMCACHED_SUCCESS)
- 30 {
- 31 cout<<"Save data:"<<value<<" sucessful!"<<endl;
- 32 }
- 33
- 34 //Get data
- 35 char* result = memcached_get(memc,key.c_str(),key_length,&value_length,&flags,&rc);
- if(rc == MEMCACHED_SUCCESS)
- {
- cout<<"Get value:"<<result<<" sucessful!"<<endl;
- }
- //Delete data
- rc=memcached_delete(memc,key.c_str(),key_length,expiration);
- if(rc==MEMCACHED_SUCCESS)
- {
- cout<<"Delete key:"<<key<<" sucessful!"<<endl;
- } //开源代码phpfensi.com
- //free
- memcached_free(memc);
- return 0;
- }
编译:g++ -o testmemcached testmemcached.cpp -lmemcached
运行:./testmemcached
结果:Save data:value sucessful!Get value:value sucessful!Delete key:key sucessful!
注意事项:
需要注意的是,libmemcached 不是 libmemcache,它们是两个不同的客户端库,前者现在的开发比较活,后者已经有很长时间没有更新了.
memcached 是一个高性能、分布式的内存对象缓存系统,通过内存的数据缓存来降低对数据库的访问,从而提高动态内容应用网站的速度,memcached 官方开发释放出来的,只是应用的服务器端程序,它发布了服务器端的连接读写协议,客户端的实现,则根据动态内容应用网站使用的动态脚本的不同,而有多种,具体列表,可查看官方网站.
Tags: libmemcached扩展 php5 3安装
相关文章
- ·ubuntu下安装php5+pdo(2013-11-13)
- ·在centos上安装php5.5+MySQL 5.5.32(2013-11-13)
- ·Linux下安装MySql+Apache2+PHP5.3.1教程(2013-11-28)
- ·为PHP5加入动态Flash文件的生成的支持(2013-12-10)
- ·php5.4.0的register globals设置(2014-02-25)
- ·PHP5中SESSION路径配置详解(2014-03-24)
- ·PHP5.4.X与Memcache不兼容问题解决方案(2014-08-26)
- ·php5.3安装libmemcached扩展的教程(2015-04-14)
- ·PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享(2019-07-28)
- ·在CentOS上php5.6怎么安装?(2020-04-28)
- ·mac环境中使用brew安装php5.5.15(2021-04-02)
- ·windows下配置php5.5开发环境及开发扩展(2021-05-04)
- ·CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录(2021-05-18)
- ·Ubuntu12下编译安装PHP5.3开发环境(2021-05-18)
- ·PHP5.3以上版本安装ZendOptimizer扩展(2021-05-18)
- ·Centos下升级php5.2到php5.4全记录(编译安装)(2021-05-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)