2012-09-13 30 views
1

我知道頁面緩存在heroku上不是一個好的選擇,因爲每個dyno都有一個emepheral文件系統(所以它們不會共享文件,每次重新啓動時它都會被擦除)。Heroku上的頁面緩存有什麼好的選擇?

所以我想知道最好的選擇是什麼。我有大量的潛在文件可能會在傳統的頁面緩存場景(比如10GB-100GB)中生成,因此redis/memcached在這裏看起來不太好。 Redis可以寫入磁盤,但我的理解是,一旦超過了內存容量,它就不是開始讀取磁盤的正確解決方案。

有沒有人在這裏找到一個好的解決方案?我在想也許是MongoStore。 (還有一些與redis一起運行的方法,因爲我在其他場景中使用redis。)謝謝!

+0

看起來像這個問題已被問在此之前:http://stackoverflow.com/questions/11019032/heroku-cedar-pure-rack-static-site – maletor

+0

嗯,這是相關的,但並沒有真正回答我的問題如何做10-100GB的頁面緩存。可能沒有什麼好的解決方案,但仍然很好奇。 –

+0

Rack :: Static將允許您爲網站提供靜態和動態內容。 – maletor

回答

2

如果你的網站是100%靜態內容,永遠不會動態,S3可能是一個不錯的選擇。然後,您可以爲s3域創建一個CNAME。這可以讓您在需要時利用CloudFront。否則,100GB將不得不進入數據庫,然後依次由您的應用程序提取數據庫。

Heroku的雪松煙囪允許custom buildpacksThis one供應商nginx。如果您設想過渡到更具動態性的網站,這將會很好。

+0

這是一個好的觀點,S3的加載可以在這裏很好地工作。沒有想到這一點。用nginx的buildpack,我編譯的slug(heroku術語)是否必須包含所有的數據?我認爲在編譯過的slug上有100MB的硬性限制。謝謝你的回答,這很好。 –

+0

不,你會將這些數據保存在一個數據庫中,並且從各種級別的緩存開始,從InnoDB開始,查詢緩存到memcached,最後到瀏覽器緩存。 – maletor

+0

小規模時,S3/CF很好。在大規模的情況下,CDN的價格要便宜得多,而且在熱點地區運行DIY邊緣CDN成本更低。 – Barry