仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 849|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之PHP模块 Memcached功效多于Memcache

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:36:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。   好比说PECL里有两个Memcached的模块,Memcache和Memcached,今朝大局部PHP情况里利用的是名字里不带d的Memcache版本,这个版本释出的对照早,是一个原生版本,与之对应的带d的Memcached版本则是创立在libmemcached的基本上,所以说Memcached版本的功效更全一些。

装置Memcached版本的PHP模块

wget http://download.tangent.org/libmemcached-0.35.tar.gz
tar zxf libmemcached-0.35.tar.gz
cd libmemcached-0.35
./configure
make
make install

wget http://pecl.php.net/get/memcached-1.0.0.tgz
tar zxf memcached-1.0.0.tgz
cd memcached-1.0.0
phpize
./configure
make
make install

翻开php.ini加上:

extension = "memcached.so"

如许装置就停止了,你可以经由过程以下号令来确认:

php -m grep mem

演示Memcached版本的新功效

先虚拟一个成绩,假定counter初始值是一个整数,不利用increment办法,经由过程get/set完成每次加一。

在Memcache版本里,咱们只能依照大致以下的体例来停止:

$m = new Memcache();
$m->addServer('localhost', 11211);
$v = $m->get('counter');
$m->set('counter', $v + 1);

因为get/set这两个举措没法作为一个原子来操作,所以当多个历程同时处置时,会呈现丧失的能够,更让人末路火的是,你基本就不晓得甚么时分呈现丧失。

再看看Memcached版本里,咱们是若何做的:

$md = new Memcached();
$md->addServer('localhost', 11211);
$v = $md->get('counter', null, $token)
$md->cas($token, 'counter', $v + 1);

cas是Memcached版本里供应的功效,说白了就是一个悲观锁的功效,假如你把$token的值var_dump出来,就会发明$token其实就是一个版本号,假如经由过程get失掉的$token版本号在cas的时分不合错误应,就申明已有其余操作更新了,此时cas操作会掉败,至于若何持续操作,就看你本人了。

注:假如你想手动重现一下抵触的情形,可在get和cas之间sleep若干秒,并拷贝两份剧本,前后履行。

特地说一句,保举的Memcached版本模块的哈希设置以下:

$md->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$md->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);

总结

Memcached版本还有良多Memcache没有的功效,好比经由过程getByKey, setByKey等主动撑持多个办事器,就不赘述了,该用哪一个扩大已不言自了然。

增补:http://code.谷歌.com/p/memcached/wiki/PHPClientComparison终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
海妖 该用户已被删除
沙发
发表于 2015-2-4 03:44:14 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
变相怪杰 该用户已被删除
板凳
发表于 2015-2-9 14:10:49 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
简单生活 该用户已被删除
地板
发表于 2015-2-26 01:07:59 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
蒙在股里 该用户已被删除
5#
发表于 2015-2-28 11:07:32 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
若天明 该用户已被删除
6#
发表于 2015-3-9 22:46:01 | 只看该作者
实践是检验自己会不会的真理。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-16 21:43:35 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
小魔女 该用户已被删除
8#
发表于 2015-3-19 10:44:35 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
谁可相欹 该用户已被删除
9#
发表于 2015-3-20 22:56:55 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-24 03:10:24 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
分手快乐 该用户已被删除
11#
发表于 2015-3-27 17:06:00 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
老尸 该用户已被删除
12#
发表于 2015-4-1 09:03:17 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
柔情似水 该用户已被删除
13#
发表于 2015-4-1 12:10:06 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
透明 该用户已被删除
14#
发表于 2015-4-3 14:24:53 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
小女巫 该用户已被删除
15#
发表于 2015-4-5 04:45:23 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
不帅 该用户已被删除
16#
发表于 2015-4-11 01:12:27 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
兰色精灵 该用户已被删除
17#
 楼主| 发表于 2015-4-14 15:46:44 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
活着的死人 该用户已被删除
18#
发表于 2015-4-16 07:23:28 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
再见西城 该用户已被删除
19#
发表于 2015-4-18 09:41:00 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
冷月葬花魂 该用户已被删除
20#
发表于 2015-5-6 14:46:05 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 12:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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