2013-08-01 43 views
2

下面是Redis intro一個例子:如何使用Redis列表來實現聊天系統?

$ 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/

它是短暫的,簡單但非常豐富。

回答

5

這裏有兩種可能性:

  • 使用的參考。您可以將消息放入包含多個字段的散列對象中。該散列的關鍵字必須從序列(incr)生成,或者可以是UUID或任何其他唯一標識符。這個鍵將是對你的消息的引用,所以你只需要將它推入列表中而不是消息的文本中。一旦引用從列表中彈出,直到接收者獲取消息的內容。

  • 使用序列化。只需使用任何您想要的格式(例如:json,xml,messagepack等等)序列化消息的各個字段,然後將結果推送到列表中。顯然,接收器將不得不反序列化項目以檢索各個字段。