【问题标题】:NodeJS, Redis and MySQLNodeJS、Redis 和 MySQL
【发布时间】:2016-12-06 03:56:36
【问题描述】:

请问有人用过NodeJS + Redis + MySQL 目标是让 NodeJS 从 Redis 获取数据,只有在未找到数据时才到达 MySQL,同时使用数据更新 MySQL

那么我如何从 Redis 运行关系请求,知道它是 NoSQL in-memory DB

我读到 Redis 比 Memcached 更好,而且它似乎更快,所以我想尝试一下,但似乎我能掌握的所有教程都只是基于 PHP

目前我使用 NodeJs + MySQL 如下(示例):

var d = new Date();
var date = d.getFullYear() + '-' + paddnum(Math.round(d.getMonth() + 1)) + '-' + paddnum(d.getDate()) + ' ' + paddnum(d.getHours()) + ':' + paddnum(d.getMinutes()) + ':' + paddnum(d.getSeconds());

var query = `INSERT INTO comments (COMMENT, POSTID)
                        VALUES ('{"author":"` + data.userid + `", "comment": "` + data.comment + `", "time":"` + date + `"}', ` + data.postid + `)
                        ON DUPLICATE KEY UPDATE
                            COMMENT = CONCAT(COMMENT, ',{"author":"` + data.userid + `", "comment": "` + data.comment + `", "time":"` + date + `"}'),
                            POSTID = ` + data.postid;
//console.log(query);
connection.query(query,
    function(err, results) {
        if (err) {
            return err;
        }
        return results;
    }
);

【问题讨论】:

    标签: mysql node.js redis memcached


    【解决方案1】:

    我不确定您真正需要什么,但根据问题,您需要在 nodejs 代码和 MySQL db 之间工作的代码和模块。 可以使用该模块进行redis操作 git://github.com/NodeRedis/node_redis.git

    现在你所需要的就是连接到redis,填写数据,然后根据用户请求检查redis->如果找到则返回数据,如果没有进行数据库查询。反之亦然。

    希望这会有所帮助。

    【讨论】:

    • 感谢似乎是前进的方向,它很好,但我现在很困惑的是,如果我想用 redis 进行关系查询(多重连接),再次感谢
    • 嗯...据我所知,redis 没有 JOIN 的功能。它基本上只是发布/订阅系统。所以它只是将值存储在内部并将其返回。但是根据我的经验,保存一些带有数据的大型对象并将其取回是非常好的。例如,您可以将 MySQL 结果保存到 redis,然后多次从 redis 获取此结果。这种方法可以节省大量时间。希望这会有所帮助。
    • 非常感谢,在多次挖掘之后,我意识到需要关系的数据我所要做的就是在 MYSQL 中创建 VIEW 并将其数据保存在 REDIS 中,因此来自 REDIS 的请求中的数据将只是 VIEWS 没有关系
    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多