Redisのインストールと自動起動の構成手順

4902 ワード

Redisは、メモリベースの永続化可能なキー値対データベースであり、分散サービスではキャッシュサービスとしてよく使用される.本編では、CentOSでゼロからスタートアップサービスを構成する方法について説明します.
一.Redis Redisをインストールするインストールは実はかなり簡単で、推奨の方式はredisのソースコードをダウンロードして、そして本機でコンパイルした後にインストールします.初めてメインフォルダのダウンロードディレクトリに入り、wgetダウンロードソースコードを実行します
[zhxilin@localhost ~]$ cd   
[zhxilin@localhost   ]$ wget http://download.redis.io/redis-stable.tar.gz

次に解凍して、/usr/redisディレクトリに移動します.
[zhxilin@localhost   ]$ tar -zxvf redis-stable.tar.gz 
[zhxilin@localhost   ]$ su mv redis-stable /usr/redis

次にredisディレクトリに入り、makeコマンドを実行し、redisソースコードをコンパイルします.
[root@localhost   ]# cd /usr/redis/
[root@localhost redis]# make

コンパイルが完了すると、srcディレクトリの下に2つの重要なプログラムが生成されます.1つはredis-serverで、もう1つはredis-cliです.次にsrcディレクトリに入り、make installを実行すると、これらの実行可能プログラムが/usr/local/binディレクトリにコピーされます./usr/local/binはシステムの環境変数$PATHで定義されているため、端末は任意の場所でredis-serverとredis-cliを実行できます.
[root@localhost redis]# cd src/
[root@localhost src]# make install

これでredisをインストールする作業が完了しました.
コンパイルされたいくつかのプログラムがそれぞれ何をしているかを見てみましょう.
redis-server:    ,redis  
redis-cli:redis client,    redis   ,     redis  ,         
redis-sentinel:redis       、           
redis-benchmark:redis       
redis-check-aof:  AOF      ,            
redis-check-rdb:  RDB      ,            

インストールが完了したら、redis-serverを起動し、redis-cliを実行してテストします.
[zhxilin@localhost ~]$ redis-server
[zhxilin@localhost ~]$ redis-cli 
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> 

このようにredisサービスは正常に動作、redisサービスが起動していない場合、redis-cliを実行するとCould not connect to Redis at 127.0と報告される.0.1:6379:Connection refusedのエラー.
二.構成自己起動システムの起動時にredis-serverが自動的に実行されるようにするには、redisサービスをデーモンとして実行する必要があります./usr/redis/ディレクトリに戻って、redis.confのファイルを見つけます.このファイルはredisサービスの実行時にロードされる構成です.まず、その内容を見てみましょう.
[zhxilin@localhost redis]$ vi redis.conf 

このファイルの内容は非常に長いですが、ほとんどは注釈です.daemonizeとpidfileの設定に重点を置いています.daemonizeのデフォルト値はfalseで、pidfileのデフォルト値はpidfile/var/run/redis_です.6379.pidは最初にdaemon化するかどうかを示し、明らかにdaemonize yesに変更しなければならない.2つ目は、サービスがデーモン・プロセスで実行されると、redisはデフォルトでpidを/var/run/redis_に書き込むことを示します.6379.pidファイルは、サービス実行中にファイルが存在し、サービスが停止すると自動的に削除されるため、redisが実行されているかどうかを判断するために使用できます.保存して終了します.
基本的な構成では、redisには、起動、停止、再起動を管理するスクリプトも必要です.redisソースコードには、/usr/redis/utils/redis_に位置する初期化スクリプトが用意されています.init_script.
このシナリオを見てみましょう.
#!/bin/sh#

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パスが指定されています.上記の黄色の場所は正しく構成する必要があります.多く言えば、インストール時にmake installが実行された場合、make installはserverとcliを/usr/local/binの下にコピーするため、ここのスクリプトはそれほど変更する必要はありません.またここのconfの経路を見ると、redisディレクトリの下のredisが必要です.confファイルを/etc/redis/6379にコピーする.conf
[root@localhost utils]# cd /etc
[root@localhost etc]# mkdir redis
[root@localhost etc]# cp /usr/redis/redis.conf www.baiyuewang.net/etc/redis/6379.conf 

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

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

サービスredisdが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を再実行すると完了します.すべてが完了したら、サービスが正常に設定されているかどうかを確認するには、次のコマンドを実行します.
[root@localhost zhxilin]# service redisd start 
[root@localhost zhxilin]# service redisd stop

に等しい
[root@localhost zhxilin]# /etc/init.d/redisd start 
[root@localhost zhxilin]# /etc/init.d/redisd stop