我在Windows 2008服务器计算机上的IIS中使用PHP上的CakePHP框架运行Web应用程序。
现在,此应用程序每隔6秒对每个连接的用户进行轮询,以刷新部分屏幕,这会导致对IIS服务器的请求,并在Oracle数据库繁忙时降低整个系统的速度。
为了解决这个问题,我考虑使用Node.js来解决这个问题并使用推送通知。这样,Node每隔6秒就会将通知推送到所有活动的浏览器客户端。
我遇到的问题是我正在进行的通话是利用已记录的用户会话。 (调用数据库,一旦我获得数据,就更新会话)。
我已阅读Redis可以解决此问题,我已经看过posts explaining how to share the session。但是还有一些我还没有得到的东西:
我怎样才能拥有已登录用户的会话? 我应该遍历所有活动会话吗?
我想在节点中创建一个setInterval
来查询每个登录用户的数据库。
答案 0 :(得分:0)
我能理解你的问题我实现了类似的网络聊天结构。使用redis或memcache,您可以创建自己的数据结构来保存用户会话,它将被加载到ram中,非常快,并且它将像所有用户会话可访问全局会话以及来自浏览器的任何节点或ajax请求一样工作redis并将响应返回给用户,而不是将请求发送到Oracle数据库而不是返回给用户。