箱のプログラミング日記。

えんじにあ奮闘記

リモート環境にあるRedisに接続する

f:id:y_hakoiri:20191102121842j:plain

リモート環境にあるRedisに接続する方法についてまとめていきます。

redis-cliとは

そもそもの話。

redis-cliはRedisコマンドライン インタフェースで、直接端末からRedisにコマンドを送信し、サーバによって送信される応答を読み込むことができる単純なプログラムです。

引用元:redis-cli、Redisコマンドライン インタフェース – Redis 日本語訳

デフォルトでは、redis-cli は 127.0.0.1 ポート 6379 のサーバに接続します。ご想像の通り、コマンドライン オプションを使ってこれを簡単に変更することができます。異なるホスト名あるいはIPアドレスを指定するには、-hを使ってください。異なるポートを設定するには、-pを使ってください。

とのこと。

確かにredis-cliで接続すると

hako$ redis-cli
127.0.0.1:6379>

ホストが127.0.0.1、ポートが6379のサーバに接続している模様。

127.0.0.1はローカルのIPアドレスなので、ローカルのredisに接続しているということですね。

異なるホスト名あるいはIPアドレスを指定するには、-hを使ってください。

ということなので、今回接続したいリモートサーバーを-hオプションでホストに指定すれば良さそう。

hako$ redis-cli -h ***.**.180.30(接続したいリモートサーバーのIPアドレス)
***.**.180.30:6379>

できた。

うまくいかないときは

リモートのredis側の設定で外部からの接続を許可していない可能性があるので、confファイルを確認します

$ sudo vi /etc/redis.conf

デフォルトだと以下のようにローカル(サーバー)内の接続のみ許可する形になっているので

bind 127.0.0.1

以下のように修正

bind 0.0.0.0

セキュリティ上、外部のどこからでも接続できる状態に問題があるようであれば、接続元IPを羅列する形で設定してもOK。

bind 127.0.0.1 **.***.**.**(接続元IP)

127.0.0.1を書き忘れるとローカル内での接続ができなくなってしまうので注意

おまけ:redis-cliのオプション一覧

こちら参考にさせていただきました。

redis-cliの使い方 - Qiita

個人的にDBは番号ではなく任意の名前をつけて管理したいなーと思って調べてみたけど、命名はできないみたいだった。。

参考

redis-cli、Redisコマンドライン インタフェース – Redis 日本語訳

RedisのReplicationをEC2で構築する - Qiita

redis-cliの使い方 - Qiita