Redis を CentOS に インストール する 方法

0 件のコメント

今回は「Redis を CentOS に インストール する 方法」についてまとめます。

動作環境

今回は以下の環境で確認しています。

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

インストール

  1. 以下のコマンドを実行してインストール

    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    tar xzf redis-5.0.5.tar.gz
    cd redis-5.0.5
    make
    make install
    

インストール先は /usr/local/bin 配下になります。 とりあえず起動したい場合 redis-server で起動できます。

初期設定

デフォルト「6379」ポートを利用するので該当ポートを開放します。

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

設定ファイル( redis.conf ) はダウンロードした tar.gz の中にサンプルが含まれているのでそれをコピーして利用してもよいです。 今回は最低限必要そうな設定だけしたものを用意します。

/etc/redis.conf

########### 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]
    upstartsystemd を指定するとスーパーバイザと通信します。
    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 しただけだとサービス設定がなされないので手動でサービスを追加します。

  1. ユーザー/グループの作成

    # useradd redis
    # mkdir -p /var/lib/redis
    # mkdir -p /var/log/redis
    # chown -R redis:redis /var/lib/redis /var/log/redis
    
  2. サービスファイルの作成

    /etc/systemd/system/redis-server.service

    [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
    
  3. systemctl の再読み込み

    # systemctl daemon-reload
    
  4. サービス有効化/起動

    # systemctl enable redis-server
    # systemctl start redis-server
    

動作確認

  1. サーバー起動

    手動起動する場合は以下のコマンドを実行します。 サービス実行しているようであればこの手順をスキップします

    # redis-server
    
  2. サーバー接続

    # redis-cli
    
  3. 認証

    127.0.0.1:6379> AUTH master-password
    OK
    
  4. データ挿入/確認/削除/キー一覧

    127.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)
    
  5. サーバー停止

    127.0.0.1:6379> shutdown
    not connected>
    
  6. サーバー切断

    not connected> exit
    

今回は「Redis を CentOS に インストール する 方法」についてまとめました。 RedisはオンメモリDBと思ってましたが、実はデータ保存する仕組みがあったんですね。 参考になったでしょうか? 本記事がお役に立っていると嬉しいです!!

参考記事

最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!