我使用
在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从消息中获取数据..如何执行此操作。
答案 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);
接收按时间戳排序的消息。