在Redis中保存私人聊天记录的结构类型

时间:2015-04-03 04:43:57

标签: redis

我正在写聊天程序,我想做聊天记录,所以我需要存储一些值。首先是发布数据,如:

socket.on('send private',function(data){
      var d = new Date();
      var doc1 = { 'name': 'message id ' + d.getTime(),  'user_from': data.userfrom,  'user_to': data.userto, 'message': data.message };    
      client.hmset('messages:' + d.getTime(), doc1, function(err, replies) {
      });
 });

但是当我从历史记录中获取数据时,我不知道如何按日期和user_from + user_to对数据进行排序。我想在两个用户之间进行私聊。

我不确定是否可以使用redis - 我是这个nosql数据库概念的新手。我想我应该以某种方式使用哈希,但不知道如何。

感谢阅读,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

使用Redis,您需要管理自己的索引。人们通常使用带有标准分隔符的键来执行此操作。

例如,尝试使用message:message_id或messages:user_id_message_id并使用incr键来跟踪当前索引。这适用于Redis有原子写入。这完全可行,但您可能希望将历史存储在备用数据存储中,因为Redis更常被视为非持久性缓存,并且您可能会在某些时候丢失一些历史数据。