実は単独のバイナリとしてプロジェクトに組み込めます。
redis-cliですが、macの場合はbrew install redis-cli等と試みてもインストールできません。
代わりにbrew install redisでredisサーバごとインストールすると、その中の1機能としてredis-cliが付いてきます。しかし、昨今のredis環境はほぼdocker化しており、ローカルにredisサーバ等はインストールしたくありません。
そこで、できるだけ標準の仕組みでredis-cliのバイナリを生成、プロジェクトに組み込めないか?と思い、実際に試してみたところ、できました。
環境
OS | macOS high sierra |
---|---|
redisバージョン | v4 |
redis-cliのバイナリ生成手順
redisのソースコードをダウンロードする
公式ページからダウンロードURLをコピってきます。
Redis
$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz $ tar zxf redis-4.0.10.tar.gz
makeする
$ cd redis-4.0.10
$ make
makeが成功すると、srcディレクトリに各種バイナリが生成されます。
$ ll total 584 -rw-r--r-- 1 tree wheel 158K 6 13 20:02 00-RELEASENOTES -rw-r--r-- 1 tree wheel 53B 6 13 20:02 BUGS -rw-r--r-- 1 tree wheel 1.8K 6 13 20:02 CONTRIBUTING -rw-r--r-- 1 tree wheel 1.5K 6 13 20:02 COPYING -rw-r--r-- 1 tree wheel 11B 6 13 20:02 INSTALL -rw-r--r-- 1 tree wheel 4.1K 6 13 20:02 MANIFESTO -rw-r--r-- 1 tree wheel 151B 6 13 20:02 Makefile -rw-r--r-- 1 tree wheel 20K 6 13 20:02 README.md drwxr-xr-x 12 tree wheel 408B 8 2 01:46 deps -rw-r--r-- 1 tree wheel 57K 6 13 20:02 redis.conf -rwxr-xr-x 1 tree wheel 271B 6 13 20:02 runtest -rwxr-xr-x 1 tree wheel 280B 6 13 20:02 runtest-cluster -rwxr-xr-x 1 tree wheel 281B 6 13 20:02 runtest-sentinel -rw-r--r-- 1 tree wheel 7.4K 6 13 20:02 sentinel.conf drwxr-xr-x 198 tree wheel 6.6K 8 2 01:47 src ← ここ! drwxr-xr-x 12 tree wheel 408B 6 13 20:02 tests drwxr-xr-x 19 tree wheel 646B 6 13 20:02 utils
redis-cliバイナリだけ抽出する
redis-cliは以下に生成されています。
$ ll src/redis-cli -rwxr-xr-x 1 tree wheel 169K 8 2 01:47 redis-cli
例えばこれを/tmpにコピーします。
$ cp src/redis-cli /tmp
ではこのバイナリを直接実行し、動作確認してみます。
$ ./redis-cli --version redis-cli 4.0.10 $ ./redis-cli 127.0.0.1:6379> keys * 1) "TEST::com.example.api.repository.database.PrefectureRepository.findAll" 2) "spring:session:sessions:825e37c4-fae1-4b86-affb-8b5b3398e9c5"
どうやらちゃんと動くようです。これでいちいちローカルにredisサーバをインストールしなくて済みますね。
しかもこのバイナリをプロジェクトに組み込んでしまえば、gitで全員に同じバージョンのredis-cliを配布する事も可能になります。