设为首页 收藏本站
查看: 712|回复: 0

[经验分享] memcached 以及 php新客户端memcached 安装(参考)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-4-6 12:08:30 | 显示全部楼层 |阅读模式
2010-02-23 11:05web2.0和web1.0不一样,web1.0以内容为中心,所以web1.0做负载只需缓存内容就可以了,使用反向代理缓存页面就可以解决大部分问题了。而web2.0鼓励用户交互,内容都是动
态的,只做反向代理命的话中率低,而且对数据库进行频繁的写,对数据库压力大。所以,web2.0对 web1.0更需要使用内存缓存。
memcached高性能的,分布式的内存对象缓存系统,在动态应用中减少数据库负载,提升访问速度。memcached已经被广泛应用在各种软件中,例如,nginx、mysql
一、服务端安装
使用weget下载libevent和memcached
libevent: http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
memcached: http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz
1.先安装libevent

tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable  
./configure  
make  
make install  
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure
make
make install

2.安装memcached

tar zxvf memcached-1.2.6.tar.gz  
cd memcached-1.2.6  
./configure --enable-threads  
make  
make install  
tar zxvf memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure --enable-threads
make
make install

注:如果启动时出现“memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open
shared object file: No such file or directory”之类的信息,表示memcached找不到libevent的位置
所以,请先使用whereis libevent得到位置,然后连接到memcached所寻找的路径

[iyunv@localhost tools]# whereis libevent  
libevent: /usr/local/lib/libevent.la /usr/local/lib/libevent.so /usr/local/lib/libevent.a  
[iyunv@localhost tools]# LD_DEBUG=libs memcached -v 2>&1 > /dev/null | less  
[iyunv@localhost tools]# ln -s /usr/local/lib/libevent-1.4.so.2 /lib64/  


二、php安装对memcached的支持
php有两个版本的memcached客户端
1.memcached
这个是新版的客户端基于libmemcached,所以必须要安装libmemcached
先安装libmemcached
下载地址:http://download.tangent.org/libmemcached-0.26.tar.gz

[iyunv@localhost tools]# tar zxvf libmemcached-0.26.tar.gz  
[iyunv@localhost tools]# cd libmemcached-0.26  
[iyunv@localhost libmemcached-0.26]# ./configure --prefix=/usr/local/libmemcached/ --with-libmemcached-dir=/usr/local/libmemcached/  
[iyunv@localhost libmemcached-0.26]# make  
[iyunv@localhost libmemcached-0.26]# make install  
[iyunv@localhost tools]# tar zxvf libmemcached-0.26.tar.gz
[iyunv@localhost tools]# cd libmemcached-0.26
[iyunv@localhost libmemcached-0.26]# ./configure --prefix=/usr/local/libmemcached/ --with-libmemcached-dir=/usr/local/libmemcached/
[iyunv@localhost libmemcached-0.26]# make
[iyunv@localhost libmemcached-0.26]# make install

安装php memcached及最新客户端
下载地址:http://pecl.php.net/get/memcached

[iyunv@localhost tools]# tar zxvf memcached-0.1.4.tgz  
[iyunv@localhost tools]# cd memcached-0.1.4  
[iyunv@localhost memcached-0.1.4]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/  
[iyunv@localhost memcached-0.1.4]# make  
[iyunv@localhost memcached-0.1.4]# make install  
[iyunv@localhost tools]# tar zxvf memcached-0.1.4.tgz
[iyunv@localhost tools]# cd memcached-0.1.4
[iyunv@localhost memcached-0.1.4]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
[iyunv@localhost memcached-0.1.4]# make
[iyunv@localhost memcached-0.1.4]# make install

修改php.ini添加extension = "memcached.so"就可以了。
1. checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the
prefix where libmemcached headers and library are located  
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix
where libmemcached headers and library are located

请先用whereis libmemcached找到路径,然后添加选项--with-libmemcached-dir=libmemcached路径

2.memcache
下载地址:http://pecl.php.net/get/memcache

[iyunv@localhost tools]# tar zxvf memcache-3.0.3.tgz
[iyunv@localhost tools]# cd memcache-3.0.3  
[iyunv@localhost tools]# /usr/local/php/bin/phpize  
[iyunv@localhost tools]# ./configure --with-php-config=/usr/local/php/bin/php-config  
[iyunv@localhost tools]# make  
[iyunv@localhost tools]# make install  
[iyunv@localhost tools]# tar zxvf memcache-3.0.3.tgz
[iyunv@localhost tools]# cd memcache-3.0.3
[iyunv@localhost tools]# /usr/local/php/bin/phpize
[iyunv@localhost tools]# ./configure --with-php-config=/usr/local/php/bin/php-config
[iyunv@localhost tools]# make
[iyunv@localhost tools]# make install

修改php.ini添加extension = "memcache.so"就可以了。
提示:如果php找不到so文件,请设置extension_dir。
ps:这篇东西在草稿箱里呆很久了,最后还是决定把一篇分多篇发吧,这样感觉快多了。

来源:http://willko.iteye.com/blog/332993NetSeek (2009-9-10 11:16:40)memcached 的客户端 libmemcached, 在处理value超过8k的数据时, 速度会直线下降, 在
http://lists.tangent.org/piperma ... ovember/000484.html, 可以找到答案, 原因是libmemcached的buf太小了, 找到源文
件memcached_constants.h, 修改#define MEMCACHED_MAX_BUFFER 8196, 改成合适的大小, 重新编译, 安装, 就可以了.

libmemcached是C客户端库的接口到memcached服务器。它被设计为轻的内存使用情况,线程安全,并提供充分获得服务器端的方法。它还采用多种
命令行工具: memcat , memflush , memrm , memstat ,并memslap (负载代)。图书馆一直在设计,让不同的散列方法对密钥,分割的钥匙
,并使用统一的散列分配。 许可: BSD许可证(修订) 变化:
修正递减的散列关键。修正的断言,是抓不好memset ( )调用的host_reset ( ) 。修正的一个问题,清除阻塞的I / O已经堆叠。增补memstat
。一种新的API冲水。

memcached简单的使用教程
这是工程应用性质的文章:memcached是数据快速存取的工具,wikipedia和facebook就用了它提高速度。具体情况可以wiki.
c/c++里面使用memcached本来是很简单的事情,但就是没有人说,非要我去读libmemcache的实例代码才行,manpage也没有说清楚(但还不得不看
)。如果要使用memcached,步骤如下:
1 安装memcached
  你可以去官网上下载,也可以sudo apt-get install memcached
2 测试你刚才的安装,
  比如运行 memcached -d -m 64 -l 127.0.0.1 -p 12300
  -d表示后台, -m 64表示使用64MB内存,-l 127.0.0.1 -p 12300 表示监听127.0.0.1:12300端口
  没有任何消息就是运行成功
3 安装libmemcached
  这个就不要apt了,因为没有精确的libmemcached包,乖乖去官网下载吧。这个东西还需要libevent,这个没法apt,libevent安装的时候最好
装到/usr/lib里面,不然libmemcached还不能运行。
4 测试libmemcached
  找一个文件比如test,然后运行memcp test --servers=127.0.0.1:12300
  这样就把test拷贝到memcached管理的内存里面了。
  memcat test --servers=127.0.0.1:12300
  看看是不是刚才的那个文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361065-1-1.html 上篇帖子: PHP插件为类定义常量 下篇帖子: PHP中使用XML-RPC构造Web_Service入门示例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表