Redisは、オープンソースのインメモリデータ構造ストアです。データベース、キャッシュ、メッセージブローカーとして使用でき、文字列、ハッシュ、リスト、セットなどのさまざまなデータ構造をサポートします。Redisは、監視、通知自動フェイルオーバーなど、RedisSentinelを介して高い可用性を提供します。また、Redisクラスターを使用して複数のRedisノード間で自動パーティション分割を提供します。
このチュートリアルでは、Ubuntu18.04サーバーにRedisをインストールして構成する方法について説明します。同じ手順がUbuntu16.04とUbuntuベースのディストリビューションにも当てはまります。
前提条件#
チュートリアルを開始する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
UbuntuへのRedisのインストール#
Redisパッケージは、デフォルトのUbuntu18.04リポジトリに含まれています。インストールは非常に簡単です。以下の手順に従ってください。
-
SSH端末で次のコマンドを実行してaptパッケージリストを更新することから始めます。
sudo apt update
-
次のように入力してRedisをインストールします:
sudo apt install redis-server
-
インストールが完了すると、Redisサービスが自動的に開始されます。サービスのステータスを確認するには、次のコマンドを入力します。
sudo systemctl status redis-server
次のように表示されます:
● redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-10-28 05:10:45 PDT; 2h ago Docs: http://redis.io/documentation, man:redis-server(1) Process: 2197 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS) Process: 2201 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) Main PID: 2226 (redis-server) Tasks: 4 (limit: 2319) CGroup: /system.slice/redis-server.service `-2226 /usr/bin/redis-server 0.0.0.0:6379
おめでとうございます。この時点で、Ubuntu18.04サーバーにRedisがインストールされて実行されています。
デフォルトでは、Redisはリモート接続を許可していません。 Redisサーバーに接続できるのは127.0.0.1(localhost)(Redisが実行されているマシン)からのみです。
リモートホストからRedisサーバーに接続する場合にのみ、次の手順を実行してください。アプリケーションとRedisが同じマシンで実行されている単一サーバー設定を使用している場合は、リモートアクセスを有効にしないでください。
リモート接続を受け入れるようにRedisを構成するには、テキストエディターでRedis構成ファイルを開きます。
sudo nano /etc/redis/redis.conf
bind 127.0.0.1 ::1
で始まる行を見つけます 127.0.0.1
を置き換えます 0.0.0.0
を使用 。
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0 ::1
ファイルを保存してエディタを閉じます。
変更を有効にするには、Redisサービスを再起動します。
sudo systemctl restart redis-server
次のコマンドを使用して、redisがポート6379
のすべてのインターフェイスでリッスンしていることを確認します :
ss -an | grep 6379
以下のようなものが表示されます。 0.0.0.0
マシン上のすべてのIPv4アドレスを意味します。
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:6379 [::]:*
次に、TCPポート6379
でリモートマシンからのトラフィックを有効にするファイアウォールルールを追加する必要があります 。
UFW
を使用していると仮定します ファイアウォールを管理し、192.168.121.0/24
からのアクセスを許可したい サブネット次のコマンドを実行します:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
この時点で、RedisサーバーはTCPポート6379でリモート接続を受け入れます。
信頼できるIP範囲からの接続のみを受け入れるようにファイアウォールが構成されていることを確認してください。
すべてが正しく設定されていることを確認するには、redis-cli
を使用してリモートマシンからRedisサーバーにpingを実行してみてください。 ユーティリティ:
redis-cli -h <REDIS_IP_ADDRESS> ping
コマンドはPONG
の応答を返す必要があります :
PONG