[英]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的更多信息。
Redis
與RabbitMQ
一起使用。 Redis將實時結果顯示給用戶。
RabbitMQ
在隊列中添加數據並將數據保存到任何數據庫。
RabbitMQ
可以在高峰時段處理負載。 因此,所有保存呼叫都將在隊列中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.