我计划将消息(聊天消息)存储在redis上,我偶然发现了socket.io人员创建的一个库socket.io-redis。我只想知道如果我使用这个库,它会对我当前的socket.io实例做什么?
它会自动保存后台的所有消息吗?
例如,我需要使用socket.io-redis在我的socket.io之上实现redis的唯一代码是
var redis = require('socket.io-redis');
var adapter = redis({ host : 'localhost', port : 6379});
io.adapter(adapter);所以问题是它在幕后到底做了什么?我是否需要安装node_redis来存储聊天消息?
发布于 2016-01-30 02:29:59
我相信你误解了这个项目。引用他们的页面:
通过使用socket.io-redis适配器运行socket.io,您可以在不同的进程或服务器中运行多个socket.io实例,这些实例都可以相互广播和发出事件。
这意味着使用此模块将提供一个socket.io集群,从而能够在运行在不同进程或服务器上的客户端之间发送消息
发布于 2018-12-24 19:18:59
当然,如果你想在聊天应用程序中存储消息,Redis不是一个好主意。它在内存上运行。您需要使用DB解决方案在磁盘上工作。你可以在你的socket io应用程序中使用仍然Redis,但不能用于存储数据。通常,人们在socket.io应用程序上使用Redis作为底板。例如,您开发了一个socket.io应用程序,并希望使其具有多个实例,您需要共享数据,因为您要将一条消息推送到一个实例,同时其他实例也应通知该消息。在这一点上,Redis pub,子结构将为您提供帮助。
https://stackoverflow.com/questions/35073610
复制相似问题