Ubuntu 16.04にRedisをインストールおよび構成する方法

前書き

Redisは、柔軟性、パフォーマンス、幅広い言語サポートで知られているメモリ内のキーと値のストアです。 このガイドでは、Ubuntu 16.04サーバーにRedisをインストールおよび構成する方法を示します。

前提条件

このガイドを完了するには、Ubuntu 16.04サーバーにアクセスする必要があります。 このプロセスに必要な管理機能を実行するには、 `+ sudo +`権限を持つ非rootユーザーが必要です。 Ubuntu 16.04初期サーバーセットアップガイドに従って、これらの権限でアカウントをセットアップする方法を学ぶことができます。

開始する準備ができたら、 `+ sudo +`ユーザーでUbuntu 16.04サーバーにログインし、以下に進みます。

ビルドとテストの依存関係をインストールする

Redisの最新バージョンを入手するために、ソースからソフトウェアをコンパイルしてインストールします。 コードをダウンロードする前に、ソフトウェアをコンパイルできるように、ビルドの依存関係を満たす必要があります。

これを行うには、Ubuntuリポジトリから `+ build-essential `メタパッケージをインストールします。 また、バイナリのテストに使用できる ` tcl +`パッケージもダウンロードします。

次のように入力して、ローカルの `+ apt +`パッケージキャッシュを更新し、依存関係をインストールできます。

sudo apt-get update
sudo apt-get install build-essential tcl

Redisのダウンロード、コンパイル、インストール

次に、Redisの構築を開始できます。

ソースコードをダウンロードして抽出する

長期間コンパイルするソースコードを保持する必要がないため(いつでも再ダウンロードできます)、 `+ / tmp +`ディレクトリにビルドします。 そこに移動しましょう:

cd /tmp

次に、Redisの最新の安定バージョンをダウンロードします。 これは、http://download.redis.io/redis-stable.tar.gz [安定したダウンロードURL]で常に利用できます。

curl -O http://download.redis.io/redis-stable.tar.gz

次のように入力して、tarballを解凍します。

tar xzvf redis-stable.tar.gz

抽出したRedisソースディレクトリ構造に移動します。

cd redis-stable

Redisのビルドとインストール

次のように入力して、Redisバイナリをコンパイルできます。

make

バイナリがコンパイルされたら、テストスイートを実行して、すべてが正しくビルドされたことを確認します。 これを行うには、次のように入力します。

make test

これは通常、実行に数分かかります。 完了したら、次のように入力して、システムにバイナリをインストールできます。

sudo make install

Redisを構成する

Redisがインストールされたので、構成を開始できます。

最初に、構成ディレクトリを作成する必要があります。 従来の `+ / etc / redis +`ディレクトリを使用します。このディレクトリは次のように入力して作成できます。

sudo mkdir /etc/redis

次に、Redisソースアーカイブに含まれているサンプルRedis設定ファイルをコピーします。

sudo cp /tmp/redis-stable/redis.conf /etc/redis

次に、ファイルを開いて、構成内のいくつかの項目を調整できます。

sudo nano /etc/redis/redis.conf

ファイルで、 `+ supervised `ディレクティブを見つけます。 現在、これは「 no 」に設定されています。 systemd initシステムを使用するオペレーティングシステムを実行しているため、これを ` systemd +`に変更できます。

/etc/redis/redis.conf

. . .

# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised

. . .

次に、 `+ dir +`ディレクトリを見つけます。 このオプションは、Redisが永続データをダンプするために使用するディレクトリを指定します。 Redisが書き込み許可を持ち、通常のユーザーには表示されない場所を選択する必要があります。

これには `+ / var / lib / redis +`ディレクトリを使用します。これはすぐに作成します:

/etc/redis/redis.conf

. . .

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir

. . .

完了したら、ファイルを保存して閉じます。

Redis systemdユニットファイルを作成する

次に、initシステムがRedisプロセスを管理できるようにsystemdユニットファイルを作成できます。

`+ / etc / systemd / system / redis.service +`ファイルを作成して開き、開始します:

sudo nano /etc/systemd/system/redis.service

内部では、説明を追加し、このサービスを開始する前にネットワークが利用可能であるという要件を定義することで、 `+ [Unit] +`セクションを開始できます。

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

`+ [Service] `セクションでは、サービスの動作を指定する必要があります。 セキュリティのため、サービスを ` root`として実行しないでください。 専用のユーザーとグループを使用する必要があります。簡単にするために、 `+ redis +`と呼びます。 これらを一時的に作成します。

サービスを開始するには、設定を指す `+ redis-server `バイナリを呼び出すだけです。 それを停止するには、Redisの ` shutdown `コマンドを使用できます。このコマンドは、 ` redis-cli `バイナリで実行できます。 また、可能な場合にRedisが障害から回復するようにしたいので、 ` Restart +`ディレクティブを“ always”に設定します。

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

最後に、 `+ [Install] +`セクションで、有効な場合(ブート時に開始するように設定されている場合)にサービスがアタッチするsystemdターゲットを定義できます。

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

完了したら、ファイルを保存して閉じます。

Redisユーザー、グループ、ディレクトリを作成する

次に、前の2つのファイルで参照したユーザー、グループ、およびディレクトリを作成するだけです。

まず、 `+ redis +`ユーザーとグループを作成します。 これは、次のように入力することにより、単一のコマンドで実行できます。

sudo adduser --system --group --no-create-home redis

次のように入力して、 `+ / var / lib / redis +`ディレクトリを作成できます。

sudo mkdir /var/lib/redis

このディレクトリに対する `+ redis +`ユーザーとグループの所有権を与える必要があります。

sudo chown redis:redis /var/lib/redis

通常のユーザーがこの場所にアクセスできないように、アクセス許可を調整します。

sudo chmod 770 /var/lib/redis

Redisの開始とテスト

これで、Redisサーバーを起動する準備が整いました。

Redisサービスを開始する

次を入力してsystemdサービスを開始します。

sudo systemctl start redis

次を実行して、サービスにエラーがないことを確認します。

sudo systemctl status redis

次のようなものが表示されるはずです。

Output● redis.service - Redis Server
  Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
  Active:  since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
 Process: 3115 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
Main PID: 3124 (redis-server)
   Tasks: 3 (limit: 512)
  Memory: 864.0K
     CPU: 179ms
  CGroup: /system.slice/redis.service
          └─3124 /usr/local/bin/redis-server 127.0.0.1:6379

. . .

Redisインスタンスの機能をテストする

サービスが正しく機能していることをテストするには、コマンドラインクライアントを使用してRedisサーバーに接続します。

redis-cli

次のプロンプトで、次のように入力して接続をテストします。

ping

君は見るべきだ:

OutputPONG

次のように入力して、キーを設定できることを確認します。

set test "It's working!"
OutputOK

次に、次のように入力して値を取得します。

get test

格納した値を取得できるはずです。

Output"It's working!"

Redisプロンプトを終了して、シェルに戻ります。

exit

最後のテストとして、Redisインスタンスを再起動しましょう。

sudo systemctl restart redis

次に、クライアントに再度接続し、テスト値がまだ利用可能であることを確認します。

redis-cli
get test

キーの値には引き続きアクセスできる必要があります。

Output"It's working!"

終了したら、再びシェルに戻ります。

exit

ブート時にRedisを開始できるようにする

すべてのテストが機能し、サーバーの起動時にRedisを自動的に起動する場合は、systemdサービスを有効にできます。

これを行うには、次を入力します。

sudo systemctl enable redis
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

結論

Ubuntu 16.04サーバーにRedisインスタンスがインストールされ、構成されているはずです。 Redisのインストールを保護する方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on-ubuntu-14-04をご覧ください[ Ubuntu 14.04でRedisインストールを保護する方法](ステップ3以降)。 Ubuntu 14.04を念頭に置いて書かれていますが、ほとんどの場合、16.04でも動作するはずです。

Related