【问题标题】:How Redis lists may be used to implement a chat system?Redis 列表如何用于实现聊天系统?
【发布时间】:2013-08-01 18:45:35
【问题描述】:

这是来自Redis intro的示例:

$ redis-cli rpush messages "Hello how are you?"
OK
$ redis-cli rpush messages "Fine thanks. I'm having fun with Redis"
OK
$ redis-cli rpush messages "I should look into this NOSQL thing ASAP"
OK
$ redis-cli lrange messages 0 2
1. Hello how are you?
2. Fine thanks. I'm having fun with Redis
3. I should look into this NOSQL thing ASAP

他们在下面写了以下内容:

您可以从上面的示例中猜到,列表可以按顺序使用 实现聊天系统。

我的问题是:他们说to implement a chat system 的真正含义是什么?

例如,聊天中的一条消息至少有三个参数:

1) 消息的文本,

2) 消息的作者,

3) 消息的写入时间。

在上面的代码示例中,我只看到一个参数:消息文本。

那么如何使用列表来实现聊天系统呢?他们假设在哪里存储其他两个参数以及如何将它们连接到 Redis 列表中的消息?

UPD

我找到了一本了解 Redis 是什么的好书:

http://openmymind.net/2012/1/23/The-Little-Redis-Book/

它简短、简单但内容丰富。

【问题讨论】:

    标签: nosql redis


    【解决方案1】:

    这里有两种可能性:

    • 使用参考。您可以将消息放入包含多个字段的哈希对象中。此散列的键必须从序列 (incr) 生成,或者可以是 UUID,或任何其他唯一标识符。此键将作为对您的消息的引用,因此您只需将其推送到列表中而不是消息的文本中。从列表中弹出引用后,由接收者获取消息的内容。

    • 使用序列化。只需使用您想要的任何格式(例如:json、xml、messagepack 等)序列化消息的各个字段,然后将结果推送到列表中。显然,接收者必须反序列化项目以检索各个字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2020-12-29
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多