我正在为一家公司构建一个聊天系统,我想知道构建该系统的最佳方法是什么?
我们当前的设置是带有PHP和Memcacheq的Nginx HTTP Server(作为将聊天消息追加到用户自己的队列的消息队列).然后,我们(通过Comet样式请求)轮询Nginx服务器,并查询消息队列以获取更新.
使用诸如Memcacheq之类的消息队列来处理同时具有用户间和站点范围内的聊天功能的聊天系统是一个好主意,还是最好只使用MySQL?
谢谢!
解决方法:
Memcache仅在您有一些过时的数据(或不良的数据库设计以增加查询执行时间)时才有用.在您的情况下(聊天系统),数据将是新鲜的,据我所知,添加Memcache只会使事情复杂化(读取降低性能).将Memcache视为mysql和php之间的中间件(在RAM上).如果数据是陈旧的,则由于PHP不必使用mysql,因此减少了旅行时间,但是在使用新数据的情况下,负载实际上会增加(因为memcache也需要从PHP中获取更改).
总之,我不建议将memcache用于聊天系统.建议您在网络上搜索更多. http://blog.tech.stylefeeder.com/2008/08/22/memcached-vs-mysql/的好帖子