Nodejs redis查询数据

时间:2016-01-22 13:34:00

标签: node.js redis

我在我的节点js应用程序中集成了redis。我正在使用npm模块"redis"我可以通过以下方式设置值:

redisClient.set('users_test', JSON.stringify({name: 'testName', email: 'testEmail', phone: 'testPhone', createdAt: <date>}), redis.print)
redisClient.get('users_test', function(err, users_test) {
            console.log('\n\nREDIS TEST USER: ' + JSON.parse(users_test))
})

考虑我的应用程序在redis中设置100个具有不同键的用户。现在我想检索插入日期范围的用户。我如何像在mongodb,mysql等中查询redis db来检索具有特定条件的数据? 我知道我将不得不以其他方式插入数据而不是字符串。请指导我完成这个。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您应该使用uniqe密钥保存每个用户。

redisClient.set('user_' + user_id, ...);

或者在您的情况下使用不同的数据类型,HASH或SORTED SET。看一下this tutorial,其中提到了所有带有用法示例的类型。

答案 1 :(得分:0)

假设redis是您选择的数据后端,正确的做法是使用日期作为分数将用户添加到redisClient.zadd(...)的SORTED SET。您可以稍后通过redisClient.zrangebyscore(...)得分来获取已排序集的子集。请进一步阅读here

请注意,如果您希望按多个分数(添加日期)查找用户,则redis的吸引力会降低(尽管仍有可能)。