繁体   English   中英

如何在Node.js应用程序中将数据从Redis保存到MySQL

[英]How to persist data from Redis to MySQL in a Node.js app

为应用程序开发新原型,该应用程序应该能够在短时间内(例如20-30分钟)每分钟处理20,000个传入请求,并将实时结果返回给用户。

示例:我显示是/否问题,您应该能够对我们的API发布YES / NO投票,我们的API应该处理这个并提供实时信息,说明有多少投票赞成,有多少投票否。

所有这些请求都需要保存到我们的MySQL数据库中。

我认为直接将这些20K请求实时保存到数据库是一个明智的想法,因为这会给数据库带来巨大负担,特别是考虑到我们需要实时数据。

所以我的想法是将Redis作为中间层。 API写入Redis,Redis返回实时计数。

但我仍然需要能够持久保存数据。 当资源空闲时,是否可以告诉Redis将所有行写入MySQL?

或者你会建议一种完全不同的方法吗?

我也研究过RabbitMQ,在可能的情况下排队所有插入并处理它们,但据我所知这不能返回实时数据

我还没有代码,因为我首先考虑实现这个所需的工具。

你可以两种方式使用

1.使用持久性选项将Redis为中间层。

Redis提供不同范围的持久性选项。 如果您根本不使用持久性选项。 Redis服务器重新启动时,所有数据都将丢失。

您可以配置Redis以在各种事件中保存数据

  • 自动不时
  • 当您手动调用BGSAVE命令时

  • 当redis关闭时

在此处阅读有关Redis Persistence的更多信息。

  1. 您也可以将RedisRabbitMQ一起使用。

Redis将实时结果显示给用户。

RabbitMQ在队列中添加数据并将数据保存到任何数据库。

RabbitMQ可以在高峰时段处理负载。 因此,所有保存呼叫都将在队列中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM