カテゴリ: Rails 更新日: 2026/03/24

Railsキャッシュ総論|ページ・アクション・フラグメント・低レベルキャッシュの違いを完全解説

Railsキャッシュ総論:ページ/アクション/フラグメント/低レベルの違い
Railsキャッシュ総論:ページ/アクション/フラグメント/低レベルの違い

先生と生徒の会話形式で理解しよう

生徒

「Railsって動きが遅くなることがあるって聞いたんですが、どうすれば速くなるんですか?」

先生

「Railsには“キャッシュ”という仕組みがあって、これを使うと同じ処理を何度もしなくて済むようになります。」

生徒

「キャッシュって種類があるんですか?」

先生

「はい。ページキャッシュ、アクションキャッシュ、フラグメントキャッシュ、低レベルキャッシュなど、目的ごとに使い分けます。順番に見ていきましょう。」

1. Railsとパフォーマンス改善の基本

1. Railsとパフォーマンス改善の基本
1. Railsとパフォーマンス改善の基本

RailsはRuby on Railsというフレームワークで、Webアプリケーションを効率よく作るための仕組みがそろっています。ただし、画面表示のたびに毎回データベースから情報を取り出したり、同じ計算を何度も行ったりすると、処理が遅くなります。

そこで登場するのがキャッシュです。キャッシュとは「一度作った結果を保存しておき、次からはそれを使う仕組み」のことです。料理で例えると、毎回ゼロから作るのではなく、作り置きを温め直すようなイメージです。

Railsのキャッシュは、MVC(モデル・ビュー・コントローラ)の考え方と深く関係しており、どこを保存するかで種類が分かれています。

Railsの仕組みを根本から理解し、現場で通用する 「設計のセオリー」を身につけたいならこの一冊。 MVC、テスト、Docker対応など、実践的な内容が凝縮されています。

パーフェクト Ruby on RailsをAmazonで見る

※ Amazon広告リンク

2. ページキャッシュとは?画面まるごと保存する仕組み

2. ページキャッシュとは?画面まるごと保存する仕組み
2. ページキャッシュとは?画面まるごと保存する仕組み

ページキャッシュは、表示されたHTMLページをそのまま保存する方法です。次に同じURLへアクセスが来たとき、Railsを通さずに保存済みのHTMLを返します。

これはとても高速ですが、ログイン状態によって内容が変わるページなどには向きません。全員に同じ内容を見せるトップページや、更新頻度の低い案内ページ向けです。


# ページキャッシュの例(概念的なイメージ)
class HomeController < ApplicationController
  def index
    # この結果がHTMLとして保存される
  end
end

初心者のうちは「ページ全部を保存する一番大胆な方法」と覚えておくと理解しやすいです。

3. アクションキャッシュとは?処理結果をまとめて再利用

3. アクションキャッシュとは?処理結果をまとめて再利用
3. アクションキャッシュとは?処理結果をまとめて再利用

アクションキャッシュは、コントローラのアクション単位で結果を保存します。ページキャッシュと似ていますが、Railsの処理を一部通す点が特徴です。

例えば、ログインチェックだけは毎回行い、その後の表示部分はキャッシュから読み込む、という使い方ができます。


class ArticlesController < ApplicationController
  before_action :authenticate_user!

  def show
    # 表示結果がキャッシュされる
  end
end

「入口だけ確認して、中身は前回の結果を使う」イメージです。

4. フラグメントキャッシュとは?画面の一部分だけ保存

4. フラグメントキャッシュとは?画面の一部分だけ保存
4. フラグメントキャッシュとは?画面の一部分だけ保存

フラグメントキャッシュは、ビューの一部分だけをキャッシュする方法です。Railsで最もよく使われるキャッシュで、初心者にもおすすめです。

例えば、ヘッダーやランキング表示など、毎回同じ内容を表示する部分だけを保存します。


<% cache("popular_articles") do %>
  <ul>
    <% @articles.each do |article| %>
      <li><%= article.title %></li>
    <% end %>
  </ul>
<% end %>

全体は動的でも、一部だけ固定することで、処理を軽くできます。

5. 低レベルキャッシュとは?データそのものを保存

5. 低レベルキャッシュとは?データそのものを保存
5. 低レベルキャッシュとは?データそのものを保存

低レベルキャッシュは、画面ではなく「値」や「計算結果」を直接保存する方法です。Rails.cacheを使って、自由に読み書きできます。

難しそうに見えますが、「箱に入れて名前を付けて保管する」感覚で考えると理解しやすいです。


Rails.cache.write("sample_message", "こんにちは")
message = Rails.cache.read("sample_message")

こんにちは

この方法は、Redisなどの高速な保存先と組み合わせて使われることが多いです。

6. キャッシュの保存先とRedisの役割

6. キャッシュの保存先とRedisの役割
6. キャッシュの保存先とRedisの役割

Railsのキャッシュは、保存する場所を選べます。ファイル、メモリ、データベース、そしてRedisなどです。

Redisは「とても速いメモ帳」のような存在で、Railsキャッシュと相性が良く、パフォーマンス改善によく使われます。


# config/environments/production.rb の例
config.cache_store = :redis_cache_store, { url: "redis://localhost:6379/0" }

「どこに保存するか」もキャッシュ設計の重要なポイントです。

7. キャッシュを使うときの考え方と注意点

7. キャッシュを使うときの考え方と注意点
7. キャッシュを使うときの考え方と注意点

キャッシュは便利ですが、内容が古くなることがあります。これをキャッシュの不整合と呼びます。

そのため、「いつ更新するか」「どこまで保存するか」を意識することが大切です。初心者のうちは、フラグメントキャッシュから試すと失敗しにくいです。

Railsのキャッシュは段階的に理解していくものなので、まずは違いを知ることが大きな一歩になります。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
Rails
Railsキャッシュ総論|ページ・アクション・フラグメント・低レベルキャッシュの違いを完全解説
New2
Rails
APIモードで始める!rails new --apiと通常モードの違いと選び方を初心者向けに解説
New3
Rails
rails new完全ガイド!テンプレート・フラグ・--skip系オプションを初心者向けに徹底解説
New4
データベース
Redis入門ガイド!初心者でもできるインストール方法と初期設定を徹底解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.2
Java&Spring記事人気No2
Ruby
OpenSSL関連エラーの直し方を完全解説!証明書・ビルドオプション・brew対策まとめ
No.3
Java&Spring記事人気No3
Ruby
Gemとは?RubyGemsとBundlerを初心者向けに完全解説!依存関係管理も図解でわかりやすく理解
No.4
Java&Spring記事人気No4
Rails
メール送信の準備をしよう!SMTPテスト用MailhogとLetter Openerの使い方
No.5
Java&Spring記事人気No5
Ruby
Rubyの後置ifとガード節を完全マスター!1行で書く早期リターンの極意
No.6
Java&Spring記事人気No6
Rails
RailsのCSRF対策を完全解説!authenticity_token・SameSite・APIモードまで初心者向けに理解
No.7
Java&Spring記事人気No7
Ruby
Rubyの代入・多重代入・並行代入を完全解説!初心者でもわかるa, b = 1, 2の使い方
No.8
Java&Spring記事人気No8
Ruby
Rubyのif文とunless文を完全攻略!読みやすい条件分岐の書き方と基本