兰色精灵 发表于 2015-2-3 23:36:41

PHP教程之PHP模块 Memcached功效多于Memcache

我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。   好比说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

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

蒙在股里 发表于 2015-2-28 11:07:32

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

若天明 发表于 2015-3-9 22:46:01

实践是检验自己会不会的真理。

金色的骷髅 发表于 2015-3-16 21:43:35

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

小魔女 发表于 2015-3-19 10:44:35

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

谁可相欹 发表于 2015-3-20 22:56:55

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

精灵巫婆 发表于 2015-3-24 03:10:24

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

分手快乐 发表于 2015-3-27 17:06:00

兴趣是最好的老师,百度是最好的词典。

老尸 发表于 2015-4-1 09:03:17

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

柔情似水 发表于 2015-4-1 12:10:06

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

透明 发表于 2015-4-3 14:24:53

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

小女巫 发表于 2015-4-5 04:45:23

基础有没有对学习php没有太大区别,关键是兴趣。

不帅 发表于 2015-4-11 01:12:27

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

兰色精灵 发表于 2015-4-14 15:46:44

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

活着的死人 发表于 2015-4-16 07:23:28

基础有没有对学习php没有太大区别,关键是兴趣。

再见西城 发表于 2015-4-18 09:41:00

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

冷月葬花魂 发表于 2015-5-6 14:46:05

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
页: [1]
查看完整版本: PHP教程之PHP模块 Memcached功效多于Memcache