【linux】redisのインストールと導入

9087 ワード

リファレンス
linuxでのRedisのインストールと配置linuxでのRedisのインストールと配置linuxでのredisのインストール、Redisインストールの起動と停止Redisインストールとセルフ起動構成service redis does not support chkconfigの解決方法
詳細
linux環境でのredisのインストールと導入について説明します
インストールredis
ダウンロード
まず公式サイトでRedis圧縮パッケージ、URL redis downloadをダウンロードし、4.0.6をダウンロードすればいい.
解凍
圧縮パッケージをlinuxサーバにコピーし、解凍操作を実行します.tar zxvf redis-4.0.6.tar.gz
makeコンパイル
解凍後のディレクトリに入り、makeを実行してコンパイルします.cd /redis-4.0.6 make
コンパイルが完了すると、解凍ファイルredis-4.0.6には対応するsrc、confなどのフォルダが表示されます.これはwindowsの下で解凍をインストールするファイルと同じで、ほとんどのインストールパッケージには対応するクラスファイル、プロファイル、コマンドファイルがあります.
redis-server:名前の通り、redisサービスredis-cli:redis clientは、redisサービスに接続するためのredisクライアントを提供し、redis-sentinel:redisインスタンスの監視管理、通知、インスタンス失効バックアップサービスredis-benchmark:redisの性能テストツールredis-check-aof:AOF方式の持続化を行う.予期せぬ事態が発生した場合にredis-check-rdbを迅速に修復するために使用:RDB方式の持続化であれば、予期せぬ事態が発生した場合に迅速に修復するために使用される
make installインストール
コンパイルが完了したら、srcフォルダに入り、make installを実行してredisインストールを行います.
これでインストールが完了します.
配置redis
フロント起動
srcフォルダの下のredis-serverを直接介してredis-4.0.6フォルダ実行./src/redis-server ./redis.confにアクセスできるようになりましたが、このとき実行されるredisサービスは、フロントで直接実行されます.すなわち、セッションウィンドウが閉じた後、redisサービスも閉じます.
バックグラウンド起動構成
バックグラウンドでredisサービスを起動するredisを変更するように構成する.confプロファイルa.デフォルトポート6379、必要に応じてb.daemonizeをyesに変更(後でモード起動)vi /usr/local/redis/bin/redis.conf
port 6379 
daemonize yes 
:wq!!
バックグラウンド起動
redis-4.0.6フォルダ実行./src/redis-server ./redis.conf
ヒントは次のとおりです.
4627:C 19 Dec 17:32:04.413 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4627:C 19 Dec 17:32:04.413 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=4627, just started
4627:C 19 Dec 17:32:04.413 # Configuration loaded

これで、デプロイが完了しました.
単純テストredis
$ redis-cli
redis> PING
PONG
redis> set foo bar
OK
redis> get foo
"bar"

これは、redisサービスが正常に動作していることを示し、redisサービスが起動していない場合、redis-cliを実行するとCould not connect to Redis at 127.0.0.1:6379: Connection refusedのエラーが表示されます.
自己起動の設定
しかし、以上のように構成すると、システムを再起動するとredisサービスは自己起動しない.redis-serverがシステム起動時に自動的に実行できるようにするには、redisサービスをデーモンとして実行する必要があり、/redis-4.0.6/ディレクトリに戻ってredisを見つける.confのファイルです.このファイルはredisサービスの実行時にロードされる構成です.
ここでdaemonizeのデフォルト値がfalse pidfileのデフォルト値がpidfile/var/run/redis_6379.pid
最初の表現はdaemon化するかどうか、明らかにdaemonize yesに変更します.2つ目は、サービスがデーモン・プロセスで実行されると、redisはデフォルトでpidを/var/run/redis_に書き込むことを示します.6379.pidファイルは、サービス実行中にファイルが存在し、サービスが停止すると自動的に削除されるため、redisが実行されているかどうかを判断するために使用できます.
保存して終了します.(redisの導入時に変更されました)
基本的な構成では、redisには、起動、停止、再起動を管理するスクリプトも必要です.redisソースコードには、/usr/redis/utils/redis_に位置する初期化スクリプトが用意されています.init_script.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

スクリプトには、ポート、serverパス、cliパス、pidfileパス、confパスが指定されています.
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

インストール時にmake installが実行された場合、make installはserverとcliを/usr/local/binの下にコピーするため、ここのスクリプトはそれほど変更する必要はありません.
またここのconfの経路を見ると、redisディレクトリの下のredisが必要です.confファイルを/etc/redis/6379にコピーする.conf
# cd /etc
# mkdir redis
# cp /usr/redis/redis.conf /etc/redis/6379.conf

次にredis_init_scriptスクリプトを/etc/initにコピーします.d/redisd
cp /usr/redis/utils/redis_init_script /etc/init.d/redisd 

/etc/init.dの下のスクリプトは、システム起動が自動的に起動できるサービスですが、システム起動時の構成が1つ欠けています.
# chkconfig redisd on

サービスredisdがchkconfigをサポートしていないというエラーが表示されます.
サービスredis does not support chkconfigの解決策を参照してください.これはredis_init_scriptの先頭に小さな変更を追加します.
#!/bin/sh
# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database

ここで2345,9010はそれぞれどういう意味かについては、上記の記事のリンクを参照してください.
保存が完了したら/etc/initに再コピーします.d/redisd後、chkconfigを再実行すると完了します.
すべてが完了したら、サービスが正常に設定されているかどうかを確認するには、次のコマンドを実行します.
# service redisd start 
# service redisd stop

に等しい
# /etc/init.d/redisd start 
# /etc/init.d/redisd stop

最後にシステムを再起動しましょう.システムに入ってからredis-cliを直接実行してredisサービスが自動的に実行されたかどうかを確認します.