我的rails 3.2應用程序試圖從高速緩存(memcached via dalli)獲取值,我不希望它是緩存。它沒有得到任何緩存命中,但我對發生的事情感到困惑。這發生在config.action_controller.perform_caching = true
的生產和開發中,使用WEBrick。意外的memcache GET在rails 3.2應用程序
這裏是我所看到的內存緩存中的詳細輸出的一個片段:
<30 GET https://www.myrailsapp.com/?
>30 Writing an error: Not found
>30 Writing bin response:
>30 0x81 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x01
>30 0x00 0x00 0x00 0x09
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
<30 Read binary protocol data:
<30 0x80 0x00 0x00 0xd0
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0xd0
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
注意,只有一個緩存GET和我沒有看到任何緩存寫入。
我看到類似的緩存GET嘗試爲我所有的行爲,其中大部分是JSON API調用。所有這些導致緩存未命中。與此類似,
<31 GET https://www.myrailsapp.com/api/somecall?param1=foo¶m2=bar
>31 Writing an error: Not found
我還沒有在我的應用程序指定的任何caches_action
指令的任何地方。
這是一個軌道錯誤?
如果不是,我應該在哪裏停止這些不必要的緩存GET?
謝謝。
[這個問題](https://github.com/mperham/dalli/issues/207)關於dalli和相關的關於如何[預防 - 緩存 - 錯誤 - 警告 - 執行 - 緩存]的問題(http://stackoverflow.com/questions/9353160/prevent-cache- miss-warnings-with-perform-caching-on?rq = 1)似乎是相關的,但並不能解釋爲什麼rails首先嚐試從緩存中獲取這些對象。 –
此問題仍未解決。請參閱https://github.com/rails/rails/issues/7581上的github問題。如果您有時間進行調查或已經有解決方案,請在該處發帖。謝謝 –