首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可伸缩PHP (基于AJAX)聊天系统的最佳方法

可伸缩PHP (基于AJAX)聊天系统的最佳方法
EN

Stack Overflow用户
提问于 2010-03-19 15:24:04
回答 4查看 2.3K关注 0票数 3

我正在为一家公司建立一个聊天系统,我想知道建立这个系统的最好方法是什么?

我们当前的设置是一个带有PHP和Memcacheq的Nginx HTTP服务器(作为一个消息队列,将聊天消息附加到用户自己的队列中)。然后,我们轮询Nginx服务器(通过Comet样式的请求),并查询消息队列以获取更新。

使用诸如Memcacheq这样的消息队列来处理同时具有用户对用户和站点范围聊天的聊天系统是一个好主意,还是只使用MySQL是最好的选择?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2010-03-19 18:00:32

只有当您有一些陈旧的数据(或糟糕的数据库设计以增加查询执行时间)时,Memcache才有用。在您的案例(聊天系统)中,数据将是最新的,在我看来,添加Memcache只会使事情变得复杂(读取性能降低)。可以把memcache看作是mysql和php之间的中间件(在RAM上)。如果数据是陈旧的,那么行程时间就会减少,因为PHP不必转到mysql,但如果是新数据,负载实际上会增加(因为memcache还需要从PHP获取更改)。

总之,我不建议在聊天系统中使用memcache。会建议多在网上搜索。http://blog.tech.stylefeeder.com/2008/08/22/memcached-vs-mysql/上的一篇好帖子

票数 3
EN

Stack Overflow用户

发布于 2010-03-19 16:06:32

我希望Memcacheq的性能比MySQL好得多。

票数 1
EN

Stack Overflow用户

发布于 2010-03-20 05:34:13

Memcacheq是一个很好的工具,可以帮助避免web请求的延迟。它可以作为php和mysql之间的缓冲区,但它不能取代mysql。Memcacheq还可以简化扩展,因为可能存在多个分布式消息消费者。

我建议把它放在高负载的php请求、将数据保存到mysql和执行耗时的操作之间。这将加快用户的页面加载速度,并将您的wil服务器从长请求中解放出来。

Memcacheq相当快。它不会占用太多的资源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2475592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档