在Redis中保存私人聊天日志的结构类型

在Redis中保存私人聊天日志的结构类型,redis,Redis,我正在写聊天程序,我想做聊天记录,所以我需要存储一些值。首先是post数据,如: 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 };

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

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) {
      });
 });
但当我从历史记录中获取数据时,我不知道如何按日期和用户从+用户到对数据进行排序。我想让两个用户之间的聊天成为私人的

我不确定使用redis是否可行——我不熟悉nosql数据库的概念。我想我应该以某种方式使用哈希,但不知道如何使用


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

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


例如,尝试messages:message\u id或messages:user\u id\u message\u id,并使用incr键跟踪当前索引。这与Redis具有原子写入功能一样有效。这是完全可行的,但您可能希望将历史存储在备用数据存储中,因为Redis通常被视为非持久性缓存,您可能会在某个时候丢失一些历史数据。

感谢帮助,您可以帮助我如何按日期对数据进行排序吗?如果您按键排序,则本质上就是按日期排序。如果在集合中有一个日期字段作为键,我认为您可以执行如下操作:按日期对myset排序:*