我有传统的 SQL 背景,正在学习 Redis。具体来说,我正在尝试与 node.js 一起运行 redis 数据库
我已经完成了 redis 的初始设置,并尝试了一些基本命令。但是我想创建一个数据库,其中包含一个 ID、学生的 3 个分数、开始日期和结束日期。
我相信我可以创建一个对象来存储特定 ID(例如 obj
)的所有值,并使用 set 函数来保存有关该 ID 的详细信息。
client.set(ID, obj, function(err, reply) {
console.log(reply);
});
如果我调用 client.get(ID)
,它将返回我在上面保存的对象。但是我想从特定的开始日期和结束日期获取 ID 的值。
在 SQL 中,它类似于:SELECT * FROM TABLE WHERE StartDATE>='' and endDate='' and id= ID;
redis 的替代方案是什么?我没能在 node.js 中找到 redis 的任何查询示例
另外,在插入数据库时,将对象作为一个整体插入是最好的方法吗?
最佳答案
Also while inserting into the database, is inserting the object as a whole the best way to go about?
不,不适用于您建议的示例查询。 Redis 不是传统的数据库,它更多的是like a key value store ,它不了解您的对象的结构。
如果你想像你建议的那样进行查询,你可能使用了错误的工具。
在 Redis 中,您不会存储对象,但可以存储更简单的结构,例如哈希。从 node_redis 窃取示例:
client.hmset("hosts", "mjr", "1", "another", "23", "home", "1234");
client.hgetall("hosts", function (err, obj) {
console.dir(obj);
});
输出:
{ mjr: '1', another: '23', home: '1234' }
有关更多详细信息,请在此处查看 redis 文档:http://redis.io/commands
关于mysql - 从 node.js 在 redis 中查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30064676/