当前位置:  开发笔记 > 编程语言 > 正文

什么时候应该使用Memcache而不是Memcached?

如何解决《什么时候应该使用Memcache而不是Memcached?》经验,为你挑选了4个好方法。

看来PHP有两个名为memcache和memcached的 memcached库.有什么区别,你怎么知道使用哪一个?一个过时了吗?似乎memcached提供了更多的方法,所以我认为这意味着它有最多的开发 - 但它似乎也需要外部C/C++库,所以我不确定我是否可以安装它.

似乎memcache已经存在更长时间,不需要额外的库,并且已经预编译了偶数窗口的二进制文件!我认为这将是现在更好的选择.然而,作为memcached(服务器)的新手,我不确定memcached(php)中是否有一些非常重要的特性使其值得额外麻烦.



1> Miha Hribar..:

Memcached客户端库最近刚刚发布稳定.它正被digg使用(由Andrei Zmievski为digg开发,现在不再使用digg)并且实现了比旧的memcache客户端更多的memcached协议.memcached最重要的功能是:

    Cas令牌.这使我的生活变得更加轻松,并且是一个简单的过时数据预防系统.每当你从缓存中提取某些内容时,你就可以收到一个cas令牌(一个双号).您可以使用该令牌保存更新的对象.如果在您的线程运行时没有其他人更新该值,则交换将成功.否则,会创建一个较新的cas令牌,您将被迫重新加载数据并使用新令牌再次保存.

    从切片面包开始,阅读回调是最好的事情.它简化了我的大部分代码.

    getDelayed()是一个很好的功能,可以减少脚本等待结果从服务器返回的时间.

    虽然memcached服务器应该非常稳定,但它并不是最快的.您可以使用二进制协议而不是ASCII与较新的客户端.

    每当您将复杂数据保存到memcached时,客户端总是会对值进行序列化(这很慢),但现在使用memcached客户端,您可以选择使用igbinary.到目前为止,我还没有机会测试这可以带来多少性能提升.

所有这些都足以让我切换到最新的客户端,可以告诉你它就像一个魅力.libmemcached库有外部依赖,但仍然设法在Ubuntu和Mac OSX上安装它,所以到目前为止没有问题.

如果您决定更新到更新的库,我建议您更新到最新的服务器版本,并且它也有一些很好的功能.您需要安装libevent才能进行编译,但在Ubuntu上并没有太多麻烦.

到目前为止,我还没有看到任何框架接收新的memcached客户端(虽然我没有跟踪它们),但我认为Zend很快就会加入.

UPDATE

Zend Framework 2有一个Memcached适配器,可以在这里找到


这个答案甚至没有告诉memcache和memcached之间的区别?!memcache只是旧版的memcached吗?

2> rymo..:

使用Windows时,比较会缩短:memcache似乎是唯一可用的客户端.



3> 小智..:

这是2013年.忘记2009年的评论.同样,如果您正在运行严重的流量负载,甚至不考虑如何使用基于Windows的内存缓存.当处理非常大规模(500多个前端Web服务器)和20多个后端数据库服务器和复制程序(mysql和mssql mix)时,一组memcached服务器(组中的12个服务器)支持多个大容量OLTP应用程序,回答25K ~40K mc->每秒接听电话.这些电话是指那些具备到达数据库.

恕我直言,这种memcached的使用为CAPEX提供了新的DB服务器和许可证以及大型商业设计的支持合同上的SERIOUS $$$,$$$节省.


这是如何回答关于php中这两种memcache协议实现之间差异的问题?
这应该是一个评论.

4> RageZ..:

Memcached是一个较新的API,它还提供了memcached作为会话提供程序,如果你有一个服务器场,这可能会很棒.

在版本仍然非常低0.2但我已经使用了两个并且我没有遇到重大问题,所以我会去memcached,因为它是新的.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有