今回は「Redis を CentOS に インストール する 方法」についてまとめます。
動作環境
今回は以下の環境で確認しています。
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
インストール
-
以下のコマンドを実行してインストール
12345tar xzf redis-5.0.5.tar.gz
cd
redis-5.0.5
make
make install
インストール先は /usr/local/bin
配下になります。
とりあえず起動したい場合 redis-server
で起動できます。
初期設定
ポート開放
デフォルト「6379」ポートを利用するので該当ポートを開放します。
1 2 | firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload |
設定ファイル作成
設定ファイル( redis.conf ) はダウンロードした tar.gz の中にサンプルが含まれているのでそれをコピーして利用してもよいです。 今回は最低限必要そうな設定だけしたものを用意します。
/etc/redis.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ########### NETWORK ########## bind 0.0.0.0 port 6379 ########### GENERAL ########## daemonize no supervised systemd logfile /var/log/redis/redis.log ######## SNAPSHOTTING ######## save 900 1 save 300 10 save 60 10000 dir /var/lib/redis dbfilename dump.rdb ########## SECURITY ########## requirepass master-password ##### MEMORY MANAGEMENT ###### maxmemory 100mb maxmemory-policy allkeys-lru |
設定
各種設定に関する補足を以下にまとめておきます。
-
ネットワーク
bind <IP1> [[<IP2> [<IP3> ...]]]
- 受け付けるIPアドレスを指定します。複数指定する場合は " "(空白) で連結して指定します。
port <PORT>
- 受け付けるポート番号を指定します。
-
一般
daemonize [yes|no]
- デーモン起動するかどうかを指定します。デフォルト
no
。 supervised [no|upstart|systemd|auto]
upstart
かsystemd
を指定するとスーパーバイザと通信します。loglevel [debug|verbose|notice|warning]
- ログレベルを指定します。
debug
が一番多く、warning
が一番少ない。プロダクション推奨はnotice
。 logfile <PATH>
- ログファイルの出力先を指定します。
""(空白)
は標準出力を意味しますが、daemonize
している場合は出力先が/dev/null
となり破棄されます。 意図的に標準出力を指定したい場合はstdout
を指定します。
-
スナップショット
save <SECONDS> <CHANGES
>SECONDS
秒以上経過したとき少なくともCHANGES
回数変更があった場合ディスク保存します。dir <PATH>
- DBファイル保存先ディレクトリを指定します。
dbfilename <FILENAME>
- DBファイル名を指定します。
-
セキュリティ
requirepass <PASSWORD>
- Redisを利用するためのパスワードを指定します。 Redisは性能が良いので秒間150,000回以上の試行ができてしまいます。 パスワードは十分長い文字列を指定してください。
-
メモリ管理
maxmemory <BYTES>
- Redisが使用できるメモリ上限を指定します。 メモリ上限に到達した場合、 maxmemory-policy に従って削除を行います。
maxmemory-policy [volatile-lru|allkeys-lru|volatile-lfu|allkeys-lfu|volatile-random|allkeys-random|volatile-ttl|noeviction]
- メモリ上限に到達した際どのようなルールでメモリ上のデータを削除するかを指定します。
自動起動設定
make
しただけだとサービス設定がなされないので手動でサービスを追加します。
-
ユーザー/グループの作成
1234# useradd redis
#
mkdir
-p /var/lib/redis
#
mkdir
-p /var/log/redis
# chown -R redis:redis /var/lib/redis /var/log/redis
-
サービスファイルの作成
/etc/systemd/system/redis-server.service
123456789101112[Unit]
Description=Redis
[Service]
Type=notify
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
-
systemctl の再読み込み
1# systemctl daemon-reload
-
サービス有効化/起動
12# systemctl enable redis-server
# systemctl
start
redis-server
動作確認
-
サーバー起動
手動起動する場合は以下のコマンドを実行します。 サービス実行しているようであればこの手順をスキップします
1# redis-server
-
サーバー接続
1# redis-cli
-
認証
12127.0.0.1:6379> AUTH master-password
OK
-
データ挿入/確認/削除/キー一覧
12345678127.0.0.1:6379>
set
mykey1
"Hello World"
OK
127.0.0.1:6379> get mykey1
"Hello World"
127.0.0.1:6379>
del
mykey1
(integer) 1
127.0.0.1:6379> keys *
(empty list or
set
)
-
サーバー停止
12127.0.0.1:6379> shutdown
not
connected>
-
サーバー切断
1not
connected>
exit
今回は「Redis を CentOS に インストール する 方法」についてまとめました。 RedisはオンメモリDBと思ってましたが、実はデータ保存する仕組みがあったんですね。 参考になったでしょうか? 本記事がお役に立っていると嬉しいです!!
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!