2015-05-19 361 views
0

我們的應用程序必須經常記錄用戶的操作(10〜15s),並且它可能非常繁重。因此,我們不希望每次用戶更新內容時將數據存儲到數據庫中,並且我們希望將所有內容都存儲在內存中(例如數組),然後在內存達到一定大小時將它們存儲到數據庫中。不同的用戶應該去我們的目的相同的內存。如何在Ruby on Rails中將數據存儲在內存中

我們已經在客戶端做了一些緩存,但我們想在服務器上進一步優化它。

ROR有什麼好辦法嗎?

謝謝!

+1

定義哪兒「內存」是什麼?在Rails應用程序上 - 數據庫*就是你的內存。 –

+2

查看redis,一個令人難以置信的快捷鍵值存儲器。 –

+0

@TarynEast嗨,我的意思是RAM – silverwen

回答

4

這是一個常見問題。如果您對緩存數據結構感興趣,Redis是閃電般快速的基於內存的數據結構服務器,通常用於減輕基於磁盤的數據庫的負載。以下是截至2015年的最新文章。 http://www.sitepoint.com/rails-model-caching-redis/

的Rails也有基於本地內存的緩存功能,如果你不希望使用Redis的或Memcached的:http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-store

+0

偉大的答案錯誤!非常感謝!有一件事我不是很確定:如果我使用Rails緩存,它需要設置過期時間,文檔中的示例似乎主要用於緩存請求響應,那麼適用於我的情況的是rails緩存嗎? (也許我錯過了文檔中的某些東西) – silverwen

+0

你可以將任何東西放入對象緩存 - 例如一個值數組 - 然後將其拉出並添加到緩存中。如果它變得足夠大,你可以刷新/堅持它到數據庫。 –

相關問題