以redis格式过滤数据

时间:2015-04-01 07:23:22

标签: node.js redis

我使用

在redis中创建记录
var data = { 'userid': 'user1' ,  'message': 'test message' };   
redisClient.hmset('messages:' + 1 , data);

var data1 = { 'userid': 'user2' ,  'message': 'test message' };   
redisClient.hmset('messages:' + 2 , data1);

我想通过userid = user2从消息中获取数据..如何执行此操作。

1 个答案:

答案 0 :(得分:0)

您无法直接过滤。您应该通过userid使用不同的密钥来执行此操作:

var data1 = { "userid": "user1" ,  "message': "test message" };   
redisClient.hmset("messages:" + data1.userid , data1.message);

var data2 = { "userid": "user2" ,  "message': "test message" };   
redisClient.hmset("messages:" + data2.userid , data2.message);

然后您可以使用

redisClient.hgetall("messages:user1")

user1获取所有邮件。

如果您想按时间戳进行分区(这不在原始问题中),则您必须使用排序集而不是哈希

redisClient.zadd("messages:" + data1.userid, new Date().getTime(), data1.message);

使用

redisClient.zrange("messages:" + data1.userid, 0, -1);

接收按时间戳排序的消息。