rails6 redisにセッションを保存する
rails6でredisにセッションを保存するまでの手順を記述してます。redisのバージョンは6.0.10を使用してます。
環境
- OS CentOS Linux release 7.9.2009 (Core)
- Ruby 2.7.2
- Rails 6.1.1
- redis 6.0.10
- rbenv 1.1.2-40-g62d7798
redis-railsインストール
まずは、railsでredisを使用できるように「redis-rails」をインストールします。
「Gemfile」に以下を追加します。
gem "redis-rails"
インストールします。
bundle install
redis利用
「config」ディレクトリ配下にある「application.rb」に以下を追加します。
セッションが消えるかどうかのテストのため10秒に設定
module RailsTest
class Application < Rails::Application
config.load_defaults 6.1
# 追加
config.cache_store = :redis_store, "redis://localhost:6379/0/cache", { expires_in: 10.seconds }
end
end
「config/initializers」に「redis.rb」を作成します。
Redis.current = Redis.new
次に「config/initializers」に「session_store.rb」を作成します。
Rails.application.config.session_store :redis_store, {
servers: [
{
host: "localhost", # サーバー名
port: 6379, # ポート
db: 0, # データベースの番号
namespace: "session", # 名前
},
],
}
これでサーバーを起動すればセッションが保存されるようになります。
rails s
確認
ブラウザから http://プライベートIP or サーバーアドレス:3000 にアクセスするとsessionがredisに作成されることが確認できます。
redis-cli
127.0.0.1:6379> key *
"session:2::447af70e0f3b23b1d4afc9e00cb80796f758462abfcb12af61df1f65dae248ab"
10秒後に再度実行するとsessionが消えていることが確認できます。
127.0.0.1:6379> key *
(empty array)
-
前の記事
XML Sitemap 投稿 (個別記事) を含めないように設定する 2021.10.31
-
次の記事
PostgreSQL テーブルのサイズを一覧で取得する 2021.10.31
コメントを書く