LMDE 3 - Redis のインストール(ソースビルド)!

Updated:


LMDE 3 (Linux Mint Debian Edition 3) にインメモリデータベースシステム Redis をソースをビルドしてインストールする方法についての記録です。

0. 前提条件

  • LMDE 3 (Linux Mint Debian Edition 3; 64bit) での作業を想定。
  • Redis 5.0.3 をインストールする。

1. アーカイブの取得

アーカイブを取得して、展開。

$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz

2. ビルド&インストール

$ cd redis-5.0.3
$ make
$ make test
$ sudo make install
  • インストール前に make test で問題がないことを確認した方がよいが、しなくても(大抵の場合は)問題ない。
  • /usr/local/bin ディレクトリにインストールされる。
    別のディレクトリにインストールしたければ、 sudo make install PREFIX=... で指定する。

3. 初期設定

シェルスクリプトを実行すると色々と質問されるが、全てデフォルト(空エンタ)で問題ない。

$ cd utils
$ sudo ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Success!
Starting Redis server...
Installation successful!
  • (今回の場合)設定は /etc/redis/6379.conf に記述されているので、変更が必要なった場合はこのファイルを編集する。

4. Redis サーバの起動・停止等

$ sudo service redis_6379 start|stop|restart|status

以下でもよい。

$ sudo /etc/init.d/redis_6379 start|stop|restart|status

OS を再起動すれば、以下のように systemctl も使えるようになる。

$ sudo systemctl start|stop|restart|status redis_6379

5. Redis サーバの自動起動の設定

インストール直後は自動起動するようになっているはず。
必要に応じて、設定する。(以下の設定では sysv-rc-conf コマンドを使用するので、未インストールならインストールする)

以下は、自動起動するような設定。

$ sudo sysv-rc-conf redis_6379 on
$ sysv-rc-conf --list | grep redis
redis_6379   0:off      1:off   2:on    3:on    4:on    5:on    6:off

以下は、自動起動しないような設定。

$ sudo sysv-rc-conf redis_6379 off
$ sysv-rc-conf --list | grep redis
redis_6379   0:off      1:off   2:off   3:off   4:off   5:off   6:off

systemctl が使えるなら、以下のようにしてもよい。

$ sudo systemctl enable redis_6379
redis_6379.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable redis_6379

$ sudo systemctl is-enabled redis_6379
redis_6379.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled redis_6379
enabled
$ sudo systemctl disable redis_6379
redis_6379.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redis_6379
insserv: warning: current start runlevel(s) (empty) of script `redis_6379' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `redis_6379' overrides LSB defaults (0 1 6).

$ sudo systemctl is-enabled redis_6379
redis_6379.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled redis_6379
disabled

6. 動作確認

systemctl status redis_6379 等でサービス(redis-server)が起動していることを確認してから)

$ redis-cli set name foo
OK

$ redis-cli mset address "Shimane pref." age 88
OK

$ redis-cli get name
"foo"

$ redis-cli mget address age
1) "Shimane pref."
2) "88"

$ redis-cli keys "*"
1) "age"
2) "address"
3) "name"

$ redis-cli flushall
OK

$ redis-cli keys "*"
(empty list or set)
  • その他、他のコマンドやデータ構造等も確認してみる。(今回は環境構築がメインなので、ここでは詳細に説明しない)

7. その他

  • サービスを停止すると、 /var/lib/redis/6379 にダンプファイルが dump.rdb 作成される。
    次のサービス起動時にこのダンプファイルからデータが読み込まれる。

8. 参考


Redis でジョブキューサーバの運用をと考えたが、自作 Ruby ツールで賄えているので、今のところは Redis を使用したいと感じる状況にない。

今回、後学のために Redis に触れてみた次第。

以上。





 

Sponsored Link

 

Comments