socket.io-redis如何在场景后面工作?

时间:2016-01-28 22:45:40

标签: node.js redis socket.io

我打算在redis上存储消息(聊天消息),我偶然发现了一个库socket.io-redis 由socket.io人创建。我只是想知道如果我使用这个库它将对我当前的socket.io实例做什么?

它会自动保存场景背后的所有信息吗?

例如,我需要使用var redis = require('socket.io-redis'); var adapter = redis({ host : 'localhost', port : 6379}); io.adapter(adapter); 在socket.io上实现redis的唯一代码是

{{1}}

所以问题是它背后的确切原因是什么?我是否需要安装node_redis来存储聊天消息?

2 个答案:

答案 0 :(得分:2)

我相信你误解了这个项目。引用他们的页面:

  

通过使用socket.io-redis适配器运行socket.io,您可以运行   不同进程或服务器中的多个socket.io实例   所有人都可以相互广播和发送事件。

这意味着使用此模块将提供socket.io群集,从而能够在运行于不同进程或服务器的客户端之间发送消息

答案 1 :(得分:0)

例如,如果要将消息存储在聊天应用程序中,Redis不是一个好主意。它在内存上运行。您需要使用数据库解决方案在磁盘上工作。您可以在套接字io应用程序中使用静态Redis,但不能用于存储数据。通常,人们在socket.io应用程序上使用Redis作为背板。因此,例如,您开发了一个socket.io应用程序,并且想要使其不止一个实例,则需要共享数据,因为您要将一条消息推送到一个实例,其他实例也应对此进行通知。在这一点上,Redis pub的子结构将为您提供帮助。