centos 7 redisとMongoDBをインストールしspringmvcでredisを統合

6763 ワード


前編で振り回されたjs、今回はRedisとMongodbを振り回して、nodejsの開発環境を基本的にインストールしました.
 
Redis
CentOSでRedisをインストールするのも簡単で、手順に従って一歩一歩の操作で、ほとんど間違いはありません.
1、/usr/srcディレクトリに切り替え(別のディレクトリにインストールする場合は、後でいくつかのパスも変更することに注意)、Redisをダウンロードします.現在の最新バージョンは2.8.13です.
 
 
    cd /usr/src
    wget http://download.redis.io/releases/redis-2.8.13.tar.gz

 
2、解凍、目次切り替え
 
    tar xzf redis-2.8.13.tar.gz
    cd redis-2.8.13

 
 
3、コンパイル
 
    make
    make install

 
 
4、redis.confを開いてプロファイルを修正します.最も重要なのは以下の行です.その他の設定は公式ドキュメントを参照してください.
    daemonize yes
    loglevel notice
    logfile /var/log/redis.log
    dir ./

 
5、システムのovercommitを設定するmemory,実行
vi /etc/sysctl.conf

ファイルに行を追加して保存:
vm.overcommit_memory = 1

 
実行:
sysctl vm.overcommit_memory=1

 
6、起動スクリプトを追加し、実行する:
vi /etc/init.d/redis

 
次のコードを書き込み、保存します.
    #!/bin/sh
    #
    # redis        Startup script for Redis Server
    #
    # chkconfig: - 90 10
    # description: Redis is an open source, advanced key-value store. 
    #
    # processname: redis-server
    # config: /etc/redis.conf
    # pidfile: /var/run/redis.pid
     
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    REDIS_CLI=/usr/local/bin/redis-cli
     
    PIDFILE=/var/run/redis.pid
    CONF="/usr/src/redis-2.8.13/redis.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
            if [ "$?"="0" ] 
            then 
                  echo "Redis is running..."
            fi 
            ;;
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    $REDIS_CLI -p $REDISPORT SHUTDOWN
                    while [ -x ${PIDFILE} ]
                   do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    echo "Redis stopped"
            fi
            ;;
       restart|force-reload)
            ${0} stop
            ${0} start
            ;;
      *)
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
            exit 1
    esac

 
権限の設定と起動:
    chmod +x /etc/init.d/redis
    chkconfig --add redis
    chkconfig redis on

 
OK、今すぐインストールします.起動redisはservice redis startまたは/etc/init.d/redis startを使用し、redisを停止するコマンドservice redis stopまたは/etc/init.d/redis stopを使用し、windowsシステムの下でredisを使用するとこの文章を参照することができます.
参考記事:
    http://hi.baidu.com/cxc0378/item/40f4b70e7fda603af3eafcbb
    http://www.saltwebsites.com/2012/install-redis-245-service-centos-6
    http://chenjinglys.blog.163.com/blog/static/16657571620127133616965
 
 
Redis-2.8.17インストールの構成手順とエラー
Redisのインストール手順:
正常な前の3ステップは問題ないはずですが、主な問題はmakeを実行するときに異常が発生したことです.
異常一:make[2]:cc:Command not found異常原因:gccソリューションがインストールされていない:yum install gcc-c++異常二:zmalloc.h:51:31: error: jemalloc/jemalloc.h:No such file or directory異常原因:一部のコンパイル依存または元のコンパイルに残された問題解決策:make distclean.片付けてからmake.
makeが成功した後、make testが必要です.make testに異常が発生しました.異常1:couldn't execute"tclsh 8.5":no such file or directory異常原因:tclソリューションがインストールされていません:yum install-y tcl.
メモリ割り当てポリシーの設定(オプション、サーバの実際の状況に応じて設定)/proc/sys/vm/overcommit_memoryオプション:0、1、2.0は、カーネルが使用可能なメモリ供給用プロセスが十分に使用されているかどうかを確認することを示します.十分なメモリがある場合は、メモリ申請が許可されます.そうでない場合、メモリ申請に失敗し、エラーを適用プロセスに返します.1は、カーネルが現在のメモリの状態にかかわらず、すべての物理メモリを割り当てることができることを示します.2は、カーネルがすべての物理メモリとスワップ領域の合計を超えるメモリの割り当てを許可していることを示します.
注意すべき点は、redisはdumpデータの場合、forkがサブプロセスを作り出し、理論的にはchildプロセスが占有するメモリはparentと同じである.例えばparentが占有するメモリは8 Gであり、この場合も同様に8 Gのメモリをchildに割り当てなければならない.メモリが負荷できないと、redisサーバのdown機やIO負荷が高すぎて効率が低下することが多い.したがって、ここで最適化されたメモリ割り当てポリシーは1に設定する必要があります(現在のメモリステータスにかかわらず、カーネルがすべての物理メモリを割り当てることを許可していることを示します).
    vim/etc/sysconfig/iptables 
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT 
    service iptables restart   
redis/redisを変更します.conf,redisプロセスをバックグラウンドデーモンに設定する:daemonize yes
このプロファイルを変更すると、redisといえば問題が発生する可能性があるが、一般的にはredisである.confプロファイルにエラーが発生した場合は、ネット上で適切なものを見つけたり、以下のようにコピーしたりすることができます.
redis.conf構成:daemonize yes pidfile/usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile/usr/local/redis/var/redis.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir/usr/local/redis/var/appendonly no appendfsync always glueoutputbuf yes shareobjects no shareobjectspoolsize 1024
$ redis-server  redis.conf
[root@Architect redis-2.8.17]# ps -ef | grep redis  root      401 29222  0 18:06 pts/3    00:00:00 grep redis  root    29258    1  0 16:23 ?        00:00:00 redis-server/etc/redis.conf 
$ redis-cli redis> set foo jiu OK redis> get foo"jiu"
これで完成です.
 
 
MongoDB
1、以下にMongoDBをインストールして、先にダウンロードする:
    cd /usr/src
    wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.4.tgz

2、解凍して、目次に入る:
    tar -zxvf mongodb-linux-x86_64-2.6.4.tgz -C /usr/src
    cd mongodb-linux-x86_64-2.6.4

3、データベースとログのディレクトリを作成する:
    mkdir log
    mkdir db

4、バックグラウンド運転方式で起動する:
./bin/mongod --dbpath=./db --logpath=./log/mongodb.log --fork --auth

次のように表示されます.
    about to fork child process, waiting until server is ready for connections.
    forked process: 4623
    child process started successfully, parent exiting

 
5、起動の設定:
echo "/usr/src/mongodb-linux-x86_64-2.6.4/bin/mongod --dbpath=/usr/src/mongodb-linux-x86_64-2.6.4/db --logpath=/usr/src/mongodb-linux-x86_64-2.6.4/log/mongodb.log --fork --auth" >> /etc/rc.local

 
OK、できました.ポートnetstat -nalupt | grep mongoを参照してください.
tcp   0   0 0.0.0.0:27017    0.0.0.0:*    LISTEN     4623/./bin/mongod