stu*_*nti 0 caching couchdb xmpp
我正在构建一个涉及多个服务器的应用程序.(4台服务器,每台服务器都有一个数据库和一个网络服务器.1个主数据库和3个从属服务器+一个负载均衡器)
有几种方法可以启用缓存.现在它很简单,效率也不高.所有缓存都在所有服务器之间的NFS分区共享上完成.NFS是架构的瓶颈.
我打算使用Zend Framework,但我认为它并不真正相关(除了某些包可能存在于其他框架中以处理XMPP,CouchDB)
要求:持久缓存(如果服务器重新启动,则不应丢失缓存以避免在重新创建缓存时关闭服务器)
http://www.danga.com/memcached/
Memcached涵盖了您列出的大部分要求 - 基于消息的读取,提交和失效.高可用性和高速度,但原子可靠性极低(牺牲性能).
(另外,memcached支持像YouTube,维基百科,Facebook这样的东西,所以我认为有足够的时间,金钱和才能认真评估许多分布式缓存选项的组织可以用memcached来解决!)
编辑(响应评论) 缓存的想法是它与后备存储相比是相对短暂的.如果您需要长期保留缓存数据,我建议您查看(a)对数据层进行非规范化以获得更高性能,或者(b)添加一个中间层数据库服务器,以直接密钥存储高容量数据 - 价值对表格,或类似的东西.