可能重复:
Using memcached as a database buffer for chat messages
我的一个朋友告诉我他是如何使用Memcache构建一个PHP / Javascript实时聊天室的,但是我无法弄清楚Memcache如何在每隔几秒钟(可能)更新数据时提供帮助。当然,他让我自己解决这个问题。
任何人都可以提供任何关于Memcache在这样的应用程序中可以提供什么优势的提示吗? (我不想知道如何准确地完成它,只是Memcache如何在数据不断更新的应用程序中加快速度。)
答案 0 :(得分:4)
Memcache是memcached(内存对象缓存)的PHP接口
这真的不适合这份工作。他显然将数据存储为密钥 - 这可能比访问数据库更快,但它仍然很糟糕。
如果您正在寻求实施某种实时聊天解决方案,我建议您查看以下技术。阅读它们,您将找到适合您需求的解决方案。
Flash(AS3)套接字: 构建Actionscript 3聊天系统的方法有很多种。如果您使用现有的众多解决方案之一,这实际上非常简单。 IE:Smartfox。您甚至可以使用外部接口在每次收到消息时触发Javascript事件。
HTML5网络套接字 由于对此的支持非常好,我建议您使用Flash优雅地降级。您可以使用的库示例:https://github.com/gimite/web-socket-js/
COMET /长轮询 这是一个非常有趣的方法。实际上你将要做的是“阻止”HTTP请求服务器端,因为在某些数据可用之前不返回任何数据EG:
while(!d = data()) {
// no data...
}
return "{data : d}"
在大多数情况下,您的浏览器会愉快地坐在那里等待发生的事情。收到数据后,浏览器将关闭连接 - 这是您处理数据,然后重新打开连接(触发新的ajax请求),以便您正在侦听新事件!
为了做到这一点,我建议使用非阻塞服务器,如Tornado(http://www.tornadoweb.org/)