Redis3.2.3をビルド&インストールしてみた

Redisが3.2となって、新しいコマンドが追加されていました。 この検証環境を作る目的で、Ubuntu16.04上のVagrantの仮想マシンにRedisをソースからインストールして動かしてみた際の手順を纏めておきます。

Redisダウンロード

Redis公式サイトのダウンロードページからソースアーカイブをダウンロードする。

インストール

アーカイブを展開すると次のディレクトリ構成が確認できる。

redis-3.2.3
├── 00-RELEASENOTES
├── BUGS
├── CONTRIBUTING
├── COPYING
├── deps
├── INSTALL
├── Makefile
├── MANIFESTO
├── README.md
├── redis.conf
├── runtest
├── runtest-cluster
├── runtest-sentinel
├── sentinel.conf
├── src
├── tests
└── utils

INSTALLファイルを見ると、README.mdを見よ、とあるので、README.mdを読む。

make
make install

で、redis-serverredis-cli/usr/local/binにインストールされる。

redis.conf

redis-serverを起動する際に、ソースアーカイブに含まれているユーティリティを使用することを前提とした場合、 つまり、utils/redis_init_scriptを使ってredis_serverを起動することを前提とした場合、redis.confは、

/etc/redis/Redisサーバの待受ポート番号.conf

というファイル名である必要がある。 したがって、README.mdと同じ階層にあるredis.conf/etc/redis/6379.confとしてコピーしておく。

Redisサーバ起動

redis-3.2.3/utilsredis_init_scriptというスクリプトがあり、これを利用することでRedisサーバが起動する。

cd /path/to/redis-3.2.3
sudo ./utils/redis_init_script start

Starting Redis server...
6155:M 24 Aug 02:41:33.100 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.3 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 6155
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

6155:M 24 Aug 02:41:33.118 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
6155:M 24 Aug 02:41:33.119 # Server started, Redis version 3.2.3
6155:M 24 Aug 02:41:33.120 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
6155:M 24 Aug 02:41:33.121 * The server is now ready to accept connections on port 6379

Redisサーバ停止

起動と同じく、utils/redis_init_scriptを利用する。

cd /path/to/redis-3.2.3
sudo ./utils/redis_init_script stop
Stopping ...
6168:M 24 Aug 02:43:46.168 # User requested shutdown...
6168:M 24 Aug 02:43:46.172 * Saving the final RDB snapshot before exiting.
6168:M 24 Aug 02:43:46.179 * DB saved on disk
6168:M 24 Aug 02:43:46.180 * Removing the pid file.
6168:M 24 Aug 02:43:46.181 # Redis is now ready to exit, bye bye...
Waiting for Redis to shutdown ...
Redis stopped

ただし、Redisサーバをフォアグラウンドで起動している場合は、Ctrl-cで停止できる。


通常、Redisをインストールする場合は、パッケージマネージャを介してインストールすることの方が多いと思いますが、 今回はあえてソースからビルド&インストールしてみました。 手順としては、非常に簡単ですね。