rails6 redisを使用する

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」に、キャッシュの保存先をRedisに設定するため、以下を追加します。

module RailsTest
  class Application < Rails::Application
    config.load_defaults 6.1
    # 追加
    config.cache_store = :redis_store, "redis://localhost:6379/0/cache", { expires_in: 90.minutes }
  end
end

ローカルでない場合は「Redis.new(:host => ‘IPアドレス’, :port => 6379)」とします。

「config/initializers」に「redis.rb」を作成します。

Redis.current = Redis.new

「controller」を作成します。

rails g controller redis index

作成した「app/controllers/redis_controller.rb」を以下のように編集します。

class RedisController < ApplicationController
  def index
    Redis.current.set("testkey", "mebee")
  end
end

「app/views/redis/index.html.erb」も以下のように編集します。

<h1>Redis#index</h1>
<p>Find me in app/views/redis/index.html.erb</p>
<%= Redis.current.get("testkey") %>

ルーティングも設定しておきます。

get "redis", to: "redis#index"

確認

ブラウザから http://プライベートIP or サーバーアドレス:3000/redis にアクセスすると設定したkeyが取得できることが確認できます。

redis側でも登録されていることが確認できます。

redis-cli

127.0.0.1:6379> get testkey
"mebee"