我已经在我的node 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))
})
考虑我的应用程序集100个这样的用户,它们在redis中具有不同的密钥。现在,我想检索在日期范围内插入的用户。如何像mongodb、mysql等一样查询redis数据库,检索符合特定条件的数据?我知道我必须以其他方式插入数据,而不是字符串。请指导我完成这件事。提前谢谢。
发布于 2016-01-22 13:51:37
您应该使用唯一密钥保存每个用户。
redisClient.set('user_' + user_id, ...);
或者使用不同的数据类型,例如,在您的示例中使用散列或排序集。看一看this tutorial,里面提到了所有类型的用法示例。
发布于 2016-01-22 20:41:13
假设redis是您选择的数据后端,正确的做法是使用redisClient.zadd(...)
将用户添加到排序集,并使用date作为分数。稍后,您可以使用redisClient.zrangebyscore(...)
获取按分数排序的集合的子集。请进一步阅读here。
请注意,如果你想通过一个以上的分数来查找用户(添加日期),redis就会变得不那么有吸引力(尽管仍有可能)。
https://stackoverflow.com/questions/34947939
复制相似问题