我打算在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来存储聊天消息?
答案 0 :(得分:2)
我相信你误解了这个项目。引用他们的页面:
通过使用socket.io-redis适配器运行socket.io,您可以运行 不同进程或服务器中的多个socket.io实例 所有人都可以相互广播和发送事件。
这意味着使用此模块将提供socket.io群集,从而能够在运行于不同进程或服务器的客户端之间发送消息
答案 1 :(得分:0)
例如,如果要将消息存储在聊天应用程序中,Redis不是一个好主意。它在内存上运行。您需要使用数据库解决方案在磁盘上工作。您可以在套接字io应用程序中使用静态Redis,但不能用于存储数据。通常,人们在socket.io应用程序上使用Redis作为背板。因此,例如,您开发了一个socket.io应用程序,并且想要使其不止一个实例,则需要共享数据,因为您要将一条消息推送到一个实例,其他实例也应对此进行通知。在这一点上,Redis pub的子结构将为您提供帮助。