メインキャッシュストアとして memcached を使用していますが、うまく機能しています。しかし、私たちはそれを使用することを決定し、有効期限を決定する必要があります. クエリが高価または頻繁である場合、それらはキャッシュに適しています。
ただし、キャッシュには次のようなわずかなオーバーヘッドが必要です。
Rails.cache.fetch 'some-key', expires_in: some-time do
some-query-result
end
このスタイルのキャッシングにはいくつかの欠点があります。これは、むやみにできることではありません (私たちのチームの何人かが最近苦労した方法を学んだように)。「すべて」をキャッシュするか、合理的な有効期限を設定しない場合 (さらに悪いことに、一意のキャッシュ キーを選択しない場合)、物事はすぐに混乱する可能性があります。そして彼らはそうしました。だから私たちは後退しました。より完全にリファクタリングするまでは、ActiveRecord SQL キャッシングの恩恵を可能な限り受けたいと考えています。
ActiveRecord SQL キャッシングは、最適ではないにしても「無料」です。メモリ使用量が設定されている場所 (または設定されている場合) を見つけることができません。
ActiveRecord SQL キャッシングで使用されるメモリ量を指定するにはどうすればよいですか?
(Rails 3.2、まもなく 4.0 に移行、Ruby 1.9.3)