【Rails入門】Redisでセッションを高速化しよう!キャッシュも解説

こんにちは!システムエンジニアのオオイシです。

Redisを使うとRuby on Railsのセッション管理を高速化出来ることをご存知ですか?

Redisはメモリ上にデータを保存する超高速のデータベースの一種です。

この記事では、

  • Redisとは?
  • RailsでRedisを使うメリットとは?
  • Redisをインストールしてみよう

といった、基本的な解説から

  • Railsのセッション管理をRedisにしてみる
  • Redisに保存されたデータを見る
  • RailsキャッシュをRedisにする

などの応用的な使い方関しても解説していきます。

今回はそんなRedisを使ったRuby on Railsの高速化方法についてわかりやすく解説します!

Redisとは?

Redisとは、データをメモリ上に保存するタイプのインメモリ型のKVS(Key Value Store)です。

KVSとは、主としてキーとバリューのシンプルなデータを保存するタイプのデータベースのことで、RDB(Relational Database)のような複雑なデータは扱えない反面、高速に動作するという特徴があります。

データの永続化を目的とする場合は向いていません。

そんな特徴から主な利用用途は、

  • キャッシュ
  • セッションデータ
  • 大量メール

などの一時的なデータの保存先としてとても有効です。

その有用性の証拠として、AWSなどのクラウドサービスのプロダクトとしてRedisが使われているのですよ!

そんなRedisをRuby on Railsで使うことのメリットについて次項で解説していきます。

RailsでRedisを使うメリットとは?

Redisはシンプルでかつ高速なデータベースであるため、

  • キャッシュ(Rails.cache)
  • Ruby on Rails のセッションデータ
  • 大量データ送信データ(Active Job)

などの一時的なデータ保存先としてRedisを利用するとRailsを高速化することができます!

さらに、セッションデータの場合は、Redisへ変更することでセッションハイジャックなどのセキュリティリスクを軽減できます!

rails_redis_5

次項ではRailsのセッション管理をRedisに変更する方法について紹介していきたいと思います!

Redisをインストールしてみよう

各種環境に応じたインストール方法を紹介します。

CentOS:

Mac:

Homebrewのインストールについてはこちらを参照してください。

Windows:
MicrosoftのGitHubのMicrosoftArchive/redisから任意にmsiをダウンロードしてインストールしてください。

Redisサーバーを起動するためには次のコマンドを実行します。

実行結果:

このようにRedisサーバーを起動することができました。

つづいて、Ruby on Rails のセッション管理をRedisにする設定方法について解説していきます。

なお、Ruby on Railsのセッション管理については、こちらで詳しく解説していますので、ぜひ参考にしてください。

Railsのセッション管理をRedisにしてみる

Ruby on Railsのセッション管理をRedisに変更するため設定方法について、順を追って解説していきます!

1. Ruby on RailsとRedisを連携するためにはredis-railsGemfileに追記します。

2. bundel installします。

3. config/initializers/session_store.rbを新規に作成しセッション管理をRedisにするための設定を記述します。

設定については以上です。

Ruby on Rails のサーバーを再起動して、アプリケーションがエラーなく実行できることを確認してみましょう。

なお、Gembundlerについては、こちらで詳しく解説しているので、ぜひ参考にしてください。

【Ruby入門】今更聞けない!Ruby bundlerとは
更新日 : 2019年1月11日

Redisに保存されたデータを見る

本当にセッションデータがRedisに保存されているの?

と不安に思う人のために、RailsコンソールからRedisのデータを確認する方法について紹介します。

1. Railsコンソールを起動します。

2. Redisに保存したセッションデータをすべて削除します

3. Railsアプリケーションからセッションに保存する操作してください。

4. RailsコンソールからRedisにセッションデータが保存されたことを確認

このように、RailsコンソールからRedisに接続できることが確認できました。

次項では、Railsキャッシュの高速化について解説していきます。

RailsキャッシュをRedisにする

速度の遅いデフォルトのRailsキャッシュ(Rails.cache)Redis保存(redis_store)に変更して見ましょう。

以下のファイルに追記します。

Ruby on Rails サーバーを再起動したら反映されます。

Railsキャッシュの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Rails入門】cacheの使い方まとめ
更新日 : 2017年9月10日

まとめ

いかかでしたか?

今回はRedisを使ったRuby on Railsの高速化方法について解説しました。

Redisは、メモリ上にデータを保存する超高速のデータベースの一種です。

Ruby on Railsのセッション管理データの保存先をRedisにすると、高速化だけでなくセキュリティー強化にもなるため、ぜひ活用してみてください。

そして、Ruby on RailsでRedisを使うための設定方法を忘れてしまったらこの記事を確認してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

オオイシ

オオイシ

システムエンジニア歴15年のオオイシです!好物は Java と Ruby。プログラミング、システムアーキテクトからマネジメントに到るまでなんでも食べます。
システム開発の相談やお困りごとがあればお気軽に
[email protected] まで連絡頂けると幸いです

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説