缓存PHP网站上的大量写入和大量读取


Caching for heavy writes and heavy reads on a PHP website

当前我们面临IIS/PHP问题-对于负载过重的网站,我们有时会出现"服务不可用"错误。服务器正在运行FastCGI,但不使用任何操作码缓存,如APC。

有一个2.5KB的XML文件每秒至少被写入磁盘20次,这是从商品市场获得的价格更新。这正被一个页面用于每秒钟或更短时间加载AJAX。当用户数量增加时,我们面临php-cgi.exe进程排队并使网站不可用的问题。

基本上,它只是一组正在写入和读取的数据。

我们计划使用CouchBase解决方案替换磁盘中的文件,这样文件内容将被写入缓存,并由文件从缓存中读取。

我担心的是:"据说缓存有利于减少写入和增加读取"。CouchBase在这种大量写入和读取的情况下会如何执行?或者,对于上述情况,有人有其他解决方案吗?

我们已经尝试从MySQL数据库中存储和使用它,然后转移到基于文件的解决方案,因为MySQL无法处理负载。

我使用过couchbase,它的速度比mongodb或mysql快。

看看这个基准测试结果:http://www.slideshare.net/renatko/couchbase-performance-benchmarking

对于繁重的写入,读取couchbase是一个怪物

在传统的基于SQL的数据库中,我们被教导尽可能多地尝试而不是来访问数据库。

在Couchbase中,读取和写入速度如此之快,以至于微不足道。这意味着与传统的RDBMS解决方案相比,您可以执行远远增加的量,而不会增加负载。

使用数据库。。。例如MySQL innodb,因为insert不会锁定整个表。

Couchbase就是从这个基础上构建的,它是一个非常快速和可扩展的数据库。

Couchbase使用memcache协议(速度)直接在内存中读/写,并将数据异步保存到磁盘(复制到另一个节点)。这就是Couchbase在读写方面的快速表现。

试试看,你会大吃一惊的!