リモート環境にある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のオプション一覧
こちら参考にさせていただきました。
個人的にDBは番号ではなく任意の名前をつけて管理したいなーと思って調べてみたけど、命名はできないみたいだった。。
参考
redis-cli、Redisコマンドライン インタフェース – Redis 日本語訳