我们正在使用 Node 开发我们网站的新版本,但我们需要继续按原样使用遗留的 mysql 数据库,同时还通过新数据库中的新表向某些模型添加新字段,并添加缓存层. 最好的方法是什么?我们正在考虑使用 Jugglingdb 并编写我们自己的适配器。它需要做几件事:
- 从我们的数据库群中的几台服务器中循环选择。
- 为只读连接缓存到Redis
- 知道哪些字段在旧数据库中,哪些字段在新数据库中。
- 连接到数据库以进行 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/