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/initializers」に「redis.rb」を作成します。ここで、IPアドレスを指定すれば外部にあるredisに接続することが可能です。

Redis.current = Redis.new(:host => "ipアドレス", :port => 6379)

これで外部のredisに接続できます。

rails s

確認

「controller」を作成します。

rails g controller redis index

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

class RedisController < ApplicationController
  def index
    Redis.current.set("samplekey", "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("samplekey") %>

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

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

ブラウザから http://プライベートIP or サーバーアドレス:3000/redis にアクセスするとsamplekeyがredisに作成されることが確認できます。

redis-cli

127.0.0.1:6379> key *
1) "samplekey"