我們正在爲使用Rails的餐館構建一個SaaS後端。我們直接與POS集成,所以每個POS都會不斷髮送我們存儲的用於以後處理的客戶訂單。我們在大約1,000個地點進行POS集成,每月向我們發送約300萬個客戶訂單。 對於這個寫入重量級的應用程序,我們將所有訂單存儲在redis中,並且工作得很好。我們以令人難以置信的速度增長,我們不斷增加擁有數百個位置的新餐廳,不斷向我們發送瘋狂的數據量。除了有一個問題 - 每個月Redis都會耗盡內存!因爲,所有不需要記憶的東西都在記憶中。從redis切換到Mysql。好主意?
這就是我們考慮切換到mysql的原因。因爲我們並不需要將所有數據都保存在內存中。這裏有我們的數字電流的Redis數據庫:
used_memory_human:39.83G
dbsize: 34706870
下面是我們在Redis的存儲爲哈希:
id - integer
location_id - integer
stored_at - timestamp
token - string
transaction_no - integer
menu_items - string(comma seprated list of all menu items that customer ordered along with their price & Qty)
order_amount - decimal
order_subtotal_amount - decimal
order_amount_payable - decimal
order_datetime - timestamp
employee_id - integer
employee_name - string
pos_type - string
post_version - string
restaurant_id - integer
所以,找了一些建議:
移動Redis到MySQL是個好主意?長遠來看它將如何影響我們,因爲我們需要不斷更新我們的指數&分割方案以迎合巨大的需求。
什麼其他數據庫(關係型或非關係型)比redis適合這種用例?
或者我們都錯了,因爲redis是用來存儲這種類型的數據的。所以,我們只是每個月都繼續使用redis &升級我們的機器?