一直纳闷着,Memcached与Memcache到底什么区别,就一个多一个字母d,一个少了一个字母d。还是上网找下资料,记录下吧
进入主题,php的memcache扩展和memcached扩展的区别
1、基于的库不同(我觉得这是本质区别,库的不同决定了后续差异)。memcache扩展是原生的(基于pecl扩展库)。memcached扩展是基于libmemcached库开发的,所以支持cas操作,cas操作就是多个线程并发修改同一个key的值的时候能够进行处理。
memcache.so和 memcached.so是两个扩展文件名称(php中扩展在linux下是.so后缀,window下是dll文件)。也就是后者就要libmemcached库来实现。
2、mc支持面向对象和面向过程两套接口操作服务端。而mcd扩展只支持面向对象方式操作。这也是库(libmemcached与libmemcache)的不同影响的。
3、 memcached支持Binary Protocol,而memcache不支持。还是库的不同导致。这意味着memcached会有更高的性能。
通过$m->setOption(Memcached::OPT_BINARY_PROTOCOL,true) 设置二进制协议。
ps:理论上二进制解码速度快于文本,但实际优势微乎其微。且目前大部分用户还是使用文本协议,比较简单稳定。实践中使用二进制的还是比较少。
4、目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的。与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。
 
                   
                   
                   
                   
                             Memcached与Memcache的区别主要在于所基于的库、支持的功能以及接口方式。Memcache是原生的PECL扩展,不支持CAS操作和Binary Protocol;而Memcached基于libmemcached库,支持CAS并发控制和更高性能的Binary Protocol。此外,Memcache提供面向对象和面向过程两种接口,而Memcached仅支持面向对象。
Memcached与Memcache的区别主要在于所基于的库、支持的功能以及接口方式。Memcache是原生的PECL扩展,不支持CAS操作和Binary Protocol;而Memcached基于libmemcached库,支持CAS并发控制和更高性能的Binary Protocol。此外,Memcache提供面向对象和面向过程两种接口,而Memcached仅支持面向对象。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   206
					206
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            