2013-05-04 67 views
1

對於給定的應用程序,我們需要在每個註冊用戶的網絡會話中存儲大約600 Kb的數據,這些用戶連接到我們的網站。我們大約有1,000個註冊用戶,因此我們需要存儲600 Mb的會話數據。在Heroku中爲每個註冊用戶存儲600 KB的會話數據

我們在會話中需要這麼多數據的原因是爲了避免頻繁查詢數據庫中有大約10億行的表。

我瞭解Heroku將會話信息存儲在數據庫中。這很好,因爲它意味着會話數據可用跨代碼(無會話親和力)。

是否有另一種更有效地存儲dynos信息的方法?閱讀文檔,我找到了memcachier。

我的問題是以下幾點:

  • 你認爲存儲在數據庫中的會話的數量就足以
  • 你建議其他緩存系統比memcachier存儲可在不同的會話信息高性能dynos?

非常感謝您的幫助!

奧利維爾

回答

2

的Heroku並不存儲會話信息的話 - 完全是怎樣的會話信息存儲取決於應用程序和應用程序的框架,將在相同的方式工作,無論您是部署在Heroku或任何其他系統。

但是,至於什麼樣的存儲是明智的,聽起來就像Cookie存儲是正確的,因爲數據量很大。數據庫存儲是Web應用程序事實上的默認設置,並且沒有任何問題。 Memcached會更快,而且更快的速度完全取決於你的配置(你使用的是連接池嗎?每個頁面視圖是否碰到數據庫以尋找其他東西?你的緩存系統是什麼樣的?)。但只要您確信在會話數據中存儲這麼多信息的策略是合理的,那麼數據庫和memcached存儲之間的差異就不會很大。

+0

嗨安德魯,謝謝你的幫助!關於會話中的數據量,我調查了不同的策略,並試圖優化SQL查詢,但給了10億行表,我認爲它是最有效的。應用程序將使用Django/PostreSQL編寫。 – user2304946 2013-05-04 05:20:30

相關問題