使用旧数据库,新数据库和Redis缓存层

时间:2015-10-29 19:46:30

标签: database node.js orm redis jugglingdb

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

  1. 循环选择我们的db herd中的几个服务器。
  2. 缓存到Redis以进行只读连接
  3. 知道哪些字段在旧数据库中,哪些字段在新数据库中。
  4. 连接到数据库以进行CRUD连接。
  5. 使用jugglingdb适配器理论上是否可行?或者是否有人使用其他更好的技术和/或完全不同的ORM包提出其他建议?

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

1 个答案:

答案 0 :(得分:0)

令人惊讶的是,自我发布此问题以来已经3年了。我们最终要做的是,终于有了这个栈:

  • nodejs(当然)
  • 后端框架的hapijs
  • 安排ORM交谈 到mysql(Sequelize具有内置的连接池!)
  • Redis用于缓存
  • 使用graphql-sequelize模块的graphql API
  • 在hapi应用程序层下编写一个服务层以查询graphql api

至关重要的是,Sequelize使其与2个不同数据库的连接变得不容易,因此我们决定仅向旧模式添加新表,而不对旧表进行任何更改。从那以后,我们不得不做一些次要的ALTER TABLE了。如果我们可以用另一种方法来完成这部分工作,我仍然感到好奇,如果另一个ORM可以让我们更轻松地将2个数据库融合在一起。