以前にも記事で取り上げたredisですが、いろいろきっかけがありまして実際に触ってみることにしました。
redisはNoSQLなデータベースサーバーなので、redisのサーバープロセスを立ち上げる必要があります。
ということで、まずはOSにredisをインストールします。
RedHat系(CentOSなど) の場合は
sudo yum install redis #インストール
sudo systemctl start redis #起動
sudo systemctl enable redis #自動起動に登録
debian系(Ubuntuなど)の場合は
sudo apt update #パッケージリスト更新
sudo apt install redis #インストール
sudo systemctl start redis-server #起動
sudo systemctl enable redis-server #自動起動に登録
mac OSでbrewコマンドが利用できる場合は
brew install redis #インストール
redis-server #フォアグラウンドで起動
とします。
インストールが完了すると、redisサーバー本体のredis-serverとredisを操作するクライアントであるredis-cliが利用できるようになります。
同じPC内でredisのサーバーとクライアント両方を動かす場合は、redis-serverが起動しているのを確認したうえで
redis-cil
とするだけでredis操作用のプロンプトに入ることができます。
ところで、redis-cliからリモートのredis-serverに接続しようとすると
こんな感じで、はじかれてしまいます。
redisはデフォルトでlocalhostからの接続のみ受け付けているため、外部からの接続を受け付けるようにするにはLANからの接続を受け付けるように設定する必要があります。
Ubuntuの場合は
/etc/redis/redis.conf
に設定があるので、vimなどでこのファイルを編集します。
編集するのは、上の画像にあるように “bind”と書かれている行です。
デフォルトでは 127.0.0.1 つまり、localhost(サーバー自身)からの接続のみしか受け付けない設定になっています。
外部からアクセスできるようにするには、redisが稼働するサーバーマシンのLANポート(NIC)に割り振られているIPアドレスを指定します。
例えば、 サーバーマシンに192.168.11.100というIPアドレスが降られている場合は
bind 127.0.0.1 192.168.11.100 #2019/9/19 訂正 127.0.0.1をとってしまうとlocalhostからの接続ができなくなります。
とすればこのIPアドレスが振られたNIC経由でのredisへの接続を受け付けるようになります。
もし複数のNICが搭載され、複数のIPが振られている状態で両方のネットワークから接続を受け付けたい場合は
bind 192.168.11.100 192.168.1.100
のようにスペース区切りにすると複数指定できます。
また、すべてのNIC経由での接続を受け付けたい場合は
bind 0.0.0.0
とします。
設定が終わったら、Linux系の場合は
sudo systemctl restart redis-server (あるいはredis)
とします。
mac OSなどでフォアグラウンドで起動している場合はいったんredisを停止させてから起動しなおします。
この状態で再度 redis-cli コマンドでリモートにつなげると
こんな感じでリモートからでも接続できるようになります。
・次の記事
redisを触ってみる 基本操作編