簡體   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