database - 使用遗留数据库、新数据库和 Redis 缓存层的新 node.js 应用程序

标签 database node.js orm redis jugglingdb

我们正在使用 Node 开发我们网站的新版本,但我们需要继续按原样使用遗留的 mysql 数据库,同时还通过新数据库中的新表向某些模型添加新字段,并添加缓存层. 最好的方法是什么?我们正在考虑使用 Jugglingdb 并编写我们自己的适配器。它需要做几件事:

  1. 从我们的数据库群中的几台服务器中循环选择。
  2. 为只读连接缓存到Redis
  3. 知道哪些字段在旧数据库中,哪些字段在新数据库中。
  4. 连接到数据库以进行 CRUD 连接。

这在理论上可以使用 jugglingdb 适配器实现吗?或者有人有其他建议使用另一种更好的技术和/或完全不同的 ORM 包吗?

有一个适配器,jugglingdb-redis-hq ,它有一个几乎是我们想要的“后院”特性,除了它似乎基本上是一种向后缓存,即将 redis 中的过期数据持久复制到数据库。除非我们正在更改或插入某些内容,否则我们不想接触数据库的读/写。

最佳答案

令人惊讶的是,我发布这个问题已经 3 年了。我们最终做了什么,我们终于几乎接受了这个,是这个堆栈:

  • nodejs(当然)
  • 后端框架的hapijs
  • Sequelize ORM 来谈谈 到 mysql(Sequelize 有内置的连接池!)
  • Redis 用于缓存
  • 使用 graphql-sequelize 模块的 graphql api
  • 在hapi应用层下写了一个service层来查询graphql api

至关重要的是,Sequelize 并没有让连接到 2 个不同的数据库变得容易,因此我们决定只向旧模式添加新表,而不对旧表进行任何更改。从那以后,当我们确实需要时,我们最终制作了几个小的 ALTER TABLE。我仍然很好奇我们是否可以用另一种方式来完成这部分,如果另一个 ORM 可以让我们更容易地融合这两个数据库。

关于database - 使用遗留数据库、新数据库和 Redis 缓存层的新 node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33423313/

相关文章:

Mysql数据截断: Data truncation: Out of range value for column 'agentID' at row 4

PHP Mysqli SELECT from Views 不起作用

javascript - 模块导出习惯用法之间的区别

java - 在 android 中使用 ORMLite 保存一个集合类

c# - asp.net mvc 5 SQL查询中的命名参数

python - Django 多个 unique_together 是否在 PostgreSQL 中被错误映射?

mysql - 显示 "users"表中的所有用户名

mysql - 在 MySQL 中使用 PostgreSQL 作为存储引擎?

javascript - 有没有办法跨文件在 JavaScript 中创建全局对象?

node.js - 使用 node.js 的 Docker 开发工作流程