我正在写聊天程序,我想做聊天记录,所以我需要存储一些值。首先是发布数据,如:
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数据库概念的新手。我想我应该以某种方式使用哈希,但不知道如何。
感谢阅读,抱歉我的英语不好。
答案 0 :(得分:0)
使用Redis,您需要管理自己的索引。人们通常使用带有标准分隔符的键来执行此操作。
例如,尝试使用message:message_id或messages:user_id_message_id并使用incr键来跟踪当前索引。这适用于Redis有原子写入。这完全可行,但您可能希望将历史存储在备用数据存储中,因为Redis更常被视为非持久性缓存,并且您可能会在某些时候丢失一些历史数据。