Memcached,Redis或Couchbase

Poe*_*Poe 14 memcached caching redis couchbase

我有一个大约16GB RAM的Debian服务器,我正在使用nginx和几个重的mysql数据库,以及一些自定义的php应用程序.我想在Mysql和PHP之间实现内存缓存,但是数据库太大而无法将所有内容存储在RAM中.我认为,就研究而言,LRU缓存可能会更好.这会排除Redis吗?Couchbase也是一个考虑因素.

Did*_*zia 17

假设有一个独特的服务器运行nginx + php + mysql实例和一些剩余的空闲RAM,使用该RAM缓存数据的最简单方法就是增加mysql实例的缓冲区缓存.数据库已经使用类似LRU的机制来处理它们的缓冲区.

现在,如果您需要将部分处理从数据库移开,则可以选择预缓存.在讨论memcached/redis之前,如果只考虑一个服务器(实际上比redis/memcached更有效),那么与AP集成的共享内存缓存(如APC)将是高效的.

memcached和redis都可以被认为是执行远程缓存(即在各个节点之间共享缓存).我不排除redis:它可以很容易地配置为此目的.两者都允许定义内存限制,并使用类似LRU的行为处理缓存.

但是,我不会在这里使用couchbase,这是一个弹性的(即应该在几个节点上使用)NoSQL键/值存储(即不是缓存).您可以将一些数据从mysql实例移动到couchbase集群,但仅将其用于缓存是过度工程IMO.

  • 应该考虑Couchbase,因为它具有普通的memcached操作模式(称为存储桶),但使管理更容易,管理统计数据等.完全披露:我为Couchbase工作. (20认同)