《WordPress 与 Redis & Memcached》要点:
本文介绍了WordPress 与 Redis & Memcached,希望对您有用。如果有疑问,可以联系我们。
相关主题:memcache扩展 / 键值KeyValue存储数据库
Memcached 是一种开源的,高性能分布式内存对象缓存系统,本色上它是通用的,但最初的目的是通过减轻数据库负载以加速动态web应用程序, 这也是它现今主要的用途.
Memcached 由 Brad Fitzpatrick为他的公司 Danga interactives 在 2003 年 5 月 22 日用 Perl 语言开发而成,当时它仅服务于作者的交友网站 LiveJournal .此后, Memcached 被 Anatoly Vorobey (它当时被那个交友网站雇用了,现在他在 Google ) 用C语言重新编写后, 开源后, Memcached 逐步发展为现代 Web 应用程序重要的缓存组件, Memcached 现在由 Redis Labs (它创建和维护 Memcached )帮助.
出道比拟早的 Memcached 简洁,高效,但其简单的数据类型系统让它在某些应用场合下不那么合适.
Memcached 也采纳 BSD 许可证.
Redis ( REmote DIctionary Server )是一个开源的内存数据库系统,它支持数据持久化(也便是你可以把它存在内存中的数据 dump 到硬盘上,以备下次载入 Redis 时使用), 它支持多种抽象的数据结构(字符串、列表、映射、集合、有序集合、位图,空间索引等).
Redis 它由来自意大利西西里岛卡塔尼亚的 Salvatore Sanfilippo (花名 antirez )在 2009 年创建,至今 antirez 仍是该项目的首席开发者和唯一维护者.Redis 功能和数据布局比 Memcached 更加丰富,这让它对数据的操作更加灵活, 但也使得它比 Memcached 更加复杂.
Redis 的性能与 Memcached 难分手足,某些情形下,甚至比 Memcached 更为高效.
Redis 也采纳 BSD 许可证.
Couchbase是个NoSQL分布式的,支持SQL查询的键值数据库, 它在NoSQL和分布式这个范畴内最大的竞争者是 MongoDB,它兼容 Memcached,阿里云的OCS ( ApsaraDB for Memcache )也兼容 Memcached 协议,Couchbase产品包括了CouchDB的一个副本, CouchDB 是一个 Apache 基金会托管的开源项目.
Membase (使用SQLite作为嵌入式存储引擎,在 Couchbase 中,使用的是 Apache CouchDB )于2010年10月发布,是由Zynga、NorthScale与NHN联合开发的,NorthScale后来酿成了Membase Inc(现在 membase.com 这个域名已经指向了 Couchbase.com).
2011年,CouchOne与Membase归并了,成为了 Couchbase.
Couchbase 分三个版本:开源版,社区版和企业版, 开源版采纳 Apache License 2.0 许可证, 社区版没有声明采纳何种许可证,只是说可以用在生产系统中,付费版,你懂的.
据他们本身说,读写性能优于 Redis,只是它还在成长进化中,并且关注者寥寥无几,不适合用作生产环境.
都把缓存层的数据放在内存中;
都存储键值数据;
都属于 NoSQL 家族;
数据类型和数据管理
Redis 支持的数据类型比 MemcacheD 更丰硕:
缓存采用一种叫做数据驱逐的机制来从内存中删除旧的数据,以便为新数据腾出空间.MemcacheD 的数据驱逐机制使用了一个LRU( 最近使用的: Least Recently Used )算法,并在一定程度上任意地将大小与新数据类似的数据驱逐出去.相比之下,Redis则允许对驱逐政策进行细粒度的控制,尽管选择了六个不同的驱逐政策.Redis 还使用了更复杂的内存管理和驱逐候选办法.
流行度
Redis 最强年夜,最流行, Memcached 更小,功能更单调, Couchbase 之类打酱油的键值存储系统,就先按下不表吧,见谷歌趋势所示:
读写机能
几年以前, Memcached 的读写性能一般来说优于 Redis, 如今, 它俩基本上旗鼓相当了, 而且 Redis 的读写性能要稍微优于 Memcached:
在实际测试中, 当 client 为 32 时, Redis 性能会显著降落.
也可使用这个脚本进行对照测试:
https://github.com/suifengtec/redis-memcached/blob/master/test.php
我的测试成果如下:
Redis multi set: 0.089952945709229Memcached multi set: 1.9566721916199Redis multi get: 0.092521190643311Memcached multi get: 0.86802196502686
内存占用
由于 Redis 可处理复杂的数据布局,所以它在实际应用中,在内存占用上要优于 Memcached.
数据持久化
内存缓存系统的数据持久化可以理解为间隔指定时间或发生不测时,尝试将内存中缓存的数据 dump 到硬盘上,以备不时之需.
Memcached (至少如今还)不支持数据持久化, Redis 是可以支持数据持久化的.
规模较年夜的应用场景
在缓存的数据项均较小时, Memcached 优于 Redis, 如果缓存的数据项均较年夜时, Redis 优于 Memcached.
能用 Redis 的话,就不要用 Memcached 了, 真要用 Memcached, PHP 扩大用 memcahced , 不要用 memcache .
本文首发今日头条以及酷威普( coolwp.com ).
维易PHP培训学院每天发布《WordPress 与 Redis & Memcached》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。