当前位置:  开发笔记 > 数据库 > 正文

使用多个服务器进行缓存

如何解决《使用多个服务器进行缓存》经验,为你挑选了1个好方法。

我正在构建一个涉及多个服务器的应用程序.(4台服务器,每台服务器都有一个数据库和一个网络服务器.1个主数据库和3个从属服务器+一个负载均衡器)

有几种方法可以启用缓存.现在它很简单,效率也不高.所有缓存都在所有服务器之间的NFS分区共享上完成.NFS是架构的瓶颈.

    我有几个想法实现缓存.它可以在服务器级别(本地文件系统)上完成,但问题是当内容在所有服务器上更新时使缓存文件无效:它可以通过具有较小的缓存生存期来完成(效率不高,因为缓存将是它应该在大部分时间刷新

    它也可以通过消息传递系统(例如XMPP)来完成,其中每个服务器相互通信.负责缓存失效的服务器向所有其他人发送请求,让他们知道缓存已经失效.延迟可能更大(需要更多时间让每个人都知道缓存已经失效)但我的应用程序不需要原子缓存失效.

    第三种方法是使用云系统来存储缓存(如CouchDB),但我不知道这个的性能.它比使用SQL数据库更快吗?

我打算使用Zend Framework,但我认为它并不真正相关(除了某些包可能存在于其他框架中以处理XMPP,CouchDB)

要求:持久缓存(如果服务器重新启动,则不应丢失缓存以避免在重新创建缓存时关闭服务器)



1> Rex M..:

http://www.danga.com/memcached/

Memcached涵盖了您列出的大部分要求 - 基于消息的读取,提交和失效.高可用性和高速度,但原子可靠性极低(牺牲性能).

(另外,memcached支持像YouTube,维基百科,Facebook这样的东西,所以我认为有足够的时间,金钱和才能认真评估许多分布式缓存选项的组织可以用memcached来解决!)

编辑(响应评论) 缓存的想法是它与后备存储相比是相对短暂的.如果您需要长期保留缓存数据,我建议您查看(a)对数据层进行非规范化以获得更高性能,或者(b)添加一个中间层数据库服务器,以直接密钥存储高容量数据 - 价值对表格,或类似的东西.

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