Ubuntu 16.04にRedisをインストールして構成する方法

7539 ワード

提供:ZStackクラウドコンピューティング

内容紹介


Redisは、優れた柔軟性、パフォーマンス、幅広い言語サポート機能で知られるメモリ内キー値ストレージスキームです.今日、Ubuntu 16.04サーバにRedisをインストールして構成する方法について説明します.

前提条件


このチュートリアルを完了するには、まずUbuntu 16.04サーバにアクセスする必要があります.また、root以外のユーザーが必要であり、sudo権限で各コマンドを実行する必要があります.このセクションについては、Ubuntu 16.04初期サーバ設定ガイドを参照してください.
準備完了後、sudoユーザーを使用してUbuntu 16.04サーバにログインします.

Buildのインストールと関連性のテスト


Redisの最新バージョンを取得するには、ソースからソフトウェアをコンパイルしてインストールする必要があります.コードのダウンロードが完了したら、build関連性を満たしてソフトウェアをコンパイルする必要があります.
まずUbuntuライブラリからbuild-essential meta-packageをインストールします.さらに、バイナリコードテストのためにtclパッケージをダウンロードする必要があります.
ローカルaptパッケージのキャッシュを更新し、関連性をインストールするには、次のコマンドを使用します.
- sudo apt-get update

- sudo apt-get install build-essential tcl

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


次にRedisに対してbuildを行います.

ソースコードのダウンロードと抽出


ソースコードを長期にわたって保持する必要がないため、/tmpディレクトリ内でbuildを直接実行できます.
- cd /tmp

今Redisの最新バージョンをダウンロードして、みんなは安定してURLをダウンロードすることができます:
- curl -O http://download.redis.io/redis-stable.tar.gz

tarを解凍する:
- tar xzvf redis-stable.tar.gz

Redisソースディレクトリへ:
- cd redis-stable

BuildとRedisのインストール


Redisバイナリコードをコンパイルします.
- make

コンパイルが完了したら、builtが正しいことを確認するためにテストキットを実行します.
- 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 systemd

. . .

次に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 /var/lib/redis

. . .

完了したら保存して終了します.

Redis systemd Unitファイルの作成


次に、システムunitファイルを作成して、initシステムを使用してRedisプロセスを管理できます.
まず/etc/systemd/system/redisを作成して開きます.サービスファイル:
- sudo nano /etc/systemd/system/redis.service

ここでは、[Unit]セクションで説明を追加し、ネットワークがサービス開始前に使用可能な状態である必要があることを定義します.
/etc/systemd/system/redis.service

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

[サービス]セクションでは、サービスの動作方法を指定する必要があります.セキュリティ上、root方式でサービスを実行するべきではありません.専用ユーザおよびグループを使用してredisを呼び出す必要があります.後でこの部分を作成します.
サービスを開始するには、構成でredis-serverバイナリファイルを呼び出すだけです.閉じるには、redis-cliを使用して実行できるReidsのshutdownコマンドを使用します.また、Redisは障害が発生した場合に回復することが望ましいため、Restart命令を「always」に設定する必要がある.
/etc/systemd/system/redis.service

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

[Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli shutdownRestart=always

最後に[Install]セクションでは、システムdを、このサービスが利用可能なときに常に関連付け(すなわち、ブート中にローで起動する)として定義します.
/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

[Install]WantedBy=multi-user.target

完了したら保存して終了します.

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


最初の2つのファイルで参照されたユーザー、グループ、ディレクトリを作成します.
まずreids userとgroupを作成します.コマンドは次のとおりです.
- sudo adduser --system --group --no-create-home redis

/var/lib/redisディレクトリを作成します.
- sudo mkdir /var/lib/redis

このディレクトリの所有権をredis userとgroupに割り当てます.
- sudo chown redis:redis /var/lib/redis

通常のユーザーがアクセスできないように権限を調整します.
- sudo chmod 770 /var/lib/redis

Redisの起動とテスト


Redisサーバを起動できます.

Redisサービスの開始


このシステムdサービスを開始します.
- 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: active (running) 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

出力結果は次のとおりです.
Output

PONG

必要な戻り結果を設定できます.
- set test "It's working!"

Output

OK

もう一度チェックします.
- get test

取得された値は、次のようになります.
Output

"It's working!"

Redisプロンプトを終了し、shellを返します.
- exit

最後のテストとして、Redisインスタンスを再起動します.
- sudo systemctl restart redis

クライアントに再アクセスし、テスト値がまだ使用可能であることを確認します.
- redis-cli

- get test

次の値を返します.
Output

"It's working!"

完了したらshellに戻ります.
- exit

Redisが起動時に有効になっていることを確認します


テストが正常に成功した場合、次にRedisがブート中に自動的に有効になっていることを確認します.
具体的なコマンドは次のとおりです.
- sudo systemctl enable redis

Output

Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

まとめ


Redisインスタンスのインストールと構成が完了しました.Redis保護に関する詳細については、Ubuntu 14.04でRedisを保護する方法(手順3)を参照してください.この文書はUbuntu 14.04向けに記述されていますが、基本的には16.04バージョンに完全に適用されます.
この文書はDigitalOcean Communityに由来します.原文:How To Install and Configure Redis on Ubuntu 16.04 By Justin Ellingwood
翻訳:diradw