redis -我应该使用redis来存储聊天消息吗?



所以我目前正在进行聊天,我想知道我是否可以使用 Redis 来存储聊天消息。这些消息只会在网上,我希望每个私人聊天至少有 20 条消息的聊天记录。聊天订阅者将存储在MongoDB中。

我主要想使用Redis,因为我摆脱了MongoDB的东西,以获得更快的速度。

我已经使用发布/订阅,但是在 Redis 列表中存储副本怎么样?另外,读取状态呢,我该如何实现呢?

Redis 仅在断电时丢失数据,如果系统正确关闭,它将保存其数据,在这种情况下,数据不会丢失。

当达到大小限制或按日期(每周或每月)将数据从 redis 转储到 mongoDb/anyotherDb 是一种很好的方法,以便您的实时聊天数据库保持轻量级。

现在,许多现代系统都在为停电做准备,UPS将运行,系统将正常关闭。 请参阅:https://hackernoon.com/how-to-shutdown-your-servers-in-case-of-power-failure-ups-nut-co-34d22a08e92

另外,读取状态呢,我该如何实现呢?

取决于您正在实现的协议,如果您使用的是xmpp,请参阅此处。 否则,您可以在消息模型中使用属性,例如"传递状态"并将其设置为枚举 (1.已发送,2。交付,3。读)。服务器收到消息后立即将其标记为已发送。对于"已传递"和"已读",客户端将向您发送回数据包,指示已执行相应的操作。

正如上面的评论所指出的,这里要考虑的重要事情是持久性模型。Redis 提供了一些持久性(带有快照和 aof-files)。重要的是首先了解您需要什么:

你能承受丢失所有数据吗?你能承受丢失一些数据吗?如果答案是否定的,那么也许你不应该为Redis而烦恼。

最新更新