ソースからのインストール
# wget https://github.com/antirez/redis/archive/2.8.21.tar.gz
ダウンロードが完了したら、解凍します。
# tar zxfv 2.8.21.tar.gz
手順の確認
コンパイルやインストールについてはREADMEに書かれていますので、ソースのあるディレクトリに移動して確認しておきます。
# cd redis-2.8.21/ # less README
コンパイル
READMEによれば、makeだけでコンパイルできるとのことです。 オプションの指定なども書かれていますが、今回は簡単なテストを行うだけなので、何もオプションを指定せずにmakeを実行します。
# make ... Hint: It's a good idea to run 'make test' ;) make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' から出ます
make test
READMEには、make後にテストを実行した方が良いとあるので、"make test"でテストを実行します。
# make test cd src && make test make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' に入ります You need tcl 8.5 or newer in order to run the Redis test make[1]: *** [test] エラー 1 make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' から出ます make: *** [test] エラー 2
テストにはtcl 8.5以上が必要ということで、インストールします。 インストール後、再度実行してテストが正常に終了すると以下のようになります。
# make test cd src && make test make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' に入ります Cleanup: may take some time... OK ... ... 105 seconds - integration/replication-3 124 seconds - integration/replication 100 seconds - unit/obuf-limits \o/ All tests passed without errors! Cleanup: may take some time... OK make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' から出ます
インストール
コンパイルとテストが完了したので、インストールします。
# make install cd src && make install make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' に入ります Hint: It's a good idea to run 'make test' ;) INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install make[1]: ディレクトリ `/usr/local/src/redis-2.8.21/src' から出ます
デフォルトだとインストールは/usr/local/以下になります。
# ls -l /usr/local/bin/ 合計 8268 -rwxr-xr-x. 1 root root 2079387 6月 7 20:18 redis-benchmark -rwxr-xr-x. 1 root root 25173 6月 7 20:18 redis-check-aof -rwxr-xr-x. 1 root root 52796 6月 7 20:18 redis-check-dump -rwxr-xr-x. 1 root root 2207278 6月 7 20:18 redis-cli lrwxrwxrwx. 1 root root 12 6月 7 20:18 redis-sentinel -> redis-server -rwxr-xr-x. 1 root root 4094420 6月 7 20:18 redis-server
設定ファイルの準備
ソースからインストールした場合、redis.confを手動で用意する必要があります。 デフォルトのredis.confはソースのトップディレクトリにありますので、それを/etc/以下などにコピーして利用します。
# cp redis.conf /etc/
動作確認
redis.confを編集して、動作確認をします。
-
動作確認用の設定
動作確認ように、redis.confを設定を一部変更します。
# vi /etc/redis.conf
daemonize
デフォルト設定のRedisはdaemonで動作しないように、daemonizeがnoになっています。 そのため、daemonで動作するようにdaemonize をyesに変更します。
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
bind
Redisを動作させるサーバーが複数のIPアドレスを持つ場合、全てのIPアドレスをlistenします。 そのため、listen先を制限したい場合は、"bind"で指定します。 ローカルからのみ許可する場合は以下を追加します。
bind 127.0.0.1
logfilen
デフォルトではログを標準出力に出力するようになっています。
logfile ""ログをファイルに出力したい場合は、logfileにパスを指定します。
logfile /var/log/redis.log
Redisサーバーの起動
設定したredis.confのパスを指定して起動させます。
# redis-server /etc/redis.conf
何もメッセージが表示されなかった場合、正常に起動しています。 念のためログファイルを確認します。
# cat /var/log/redis.log [31707] 07 Jun 20:54:45.169 * Increased maximum number of open files to 10032 (it was originally set to 1024). _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 2.8.21 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in stand alone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 31707 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' [31707] 07 Jun 20:54:45.173 # Server started, Redis version 2.8.21 [31707] 07 Jun 20:54:45.173 # 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. [31707] 07 Jun 20:54:45.173 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel /mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. [31707] 07 Jun 20:54:45.173 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. [31707] 07 Jun 20:54:45.173 * The server is now ready to accept connections on port
上記は、CentOS 7.1 minimal にインストールした場合です。いくつか警告がでていますが、今回は簡単なテスト用なので無視しておきます。 業務で使用する場合は、警告の内容をよく読んで対処が必要かどうか検討して対応します。
読み書きテスト
redis-cliコマンドを使って、書き込みの確認をします。
# redis-cli 127.0.0.1:6379> set TESTWORD "redis test word" OK書き込みでOKになったら、書き込みデータが読み出せるか確認します。
127.0.0.1:6379> get TESTWORD "redis test word" 127.0.0.1:6379>