Redis安裝及主從配置

振宇要低調發表於2014-12-17

 

1、編譯環境準備

1.1環境確認

Redis是一個開源、支援網路、基於記憶體、鍵值對儲存資料庫,使用ANSI C編寫。所以在搭建Redis伺服器時需要C語言的編譯環境gcc或g++。

首先確認系統中是否存在C語言的編譯環境,終端執行如下命令:

    #gcc –version

    #g++ --version

如果出現如下字樣則表示系統中存在C語言的編譯環境,不需要安裝。

    gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)

    Copyright (C) 2006 Free Software Foundation, Inc.

    This is free software; see the source for copying conditions.  There is NO

    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

    g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)

    Copyright (C) 2006 Free Software Foundation, Inc.

    This is free software; see the source for copying conditions.  There is NO

    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果沒有,就需要在系統中安裝gcc、g++。

1.2 64位redhat中安裝gcc、g++

將安裝所需的rpm包拷貝到目標機器上,然後按照以下順序安裝:

(1) 安裝gcc,軟體安裝順序不能錯

              # rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm

              # rpm -ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm

              # rpm -ivh libgcc-4.4.5-6.el6.x86_64.rpm

              # rpm -ivh glibc-2.12-1.25.el6.x86_64.rpm

              # rpm -ivh libgomp-4.4.5-6.el6.x86_64.rpm

              # rpm -ivh nscd-2.12-1.25.el6.x86_64.rpm

              # rpm -ivh glibc-headers-2.12-1.25.el6.x86_64.rpm

              # rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm

              # rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm

              # rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm

              # rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

              # rpm -ivh cpp-4.4.5-6.el6.x86_64.rpm

              # rpm -ivh gcc-4.4.5-6.el6.x86_64.rpm

(2) 安裝gcc-c++

              # rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm

              # rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm

              # rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm

注意,正常情況下這樣安裝是不存在問題的,但是在某些環境下安裝第一個rpm包的時候就會報錯。這個時候就在所有的命令後加“--nodeps –force”,就像:

    # rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm --nodeps –force

再次執行就沒有問題了。

2、安裝及配置Redis

2.1安裝Redis

將redis-2.6.16.tar.gz解壓,然後安裝。步驟及相關命令如下:

    #tar –xvzf redis-2.6.16.tar.gz

    #cd redis-2.6.16

    #make

一些版本的linux在make的時候會報錯,如圖2.1所示。

圖2.1 編譯Redis出錯

分析原因為32位的程式在64為的系統中編譯出錯。解決方法:

(1)將解壓後的redis資料夾刪除,重新解壓;

(2)進入解壓後的redis資料夾執行: make CFLAGS="-march=i686"

Make成功後,在src資料夾中會生成若干可執行檔案,執行:

    ./redis-server

將會出現如圖2.2所示的畫面。

圖2.2 Redis服務開啟畫面

2.2配置Redis

2.2.1 複製到指定資料夾

    #mkdir -p /usr/local/webserver/redis/conf

    #mkdir -p /usr/local/webserver/redis/run

    #mkdir -p /usr/local/webserver/redis/db

    #cp redis.conf /usr/local/webserver/redis/conf/

    #cd cd redis-2.6.16/src

將 src 目錄下所有可執行檔案複製到安裝目錄

    #cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/

2.2.2修改配置檔案中的如下選項

    #vi /usr/local/webserver/redis/conf/redis.conf

    daemonize yes

    pidfile /usr/local/webserver/redis/run/redis.pid

    dir /usr/local/webserver/redis/db

2.2.3建立服務指令碼

(1)啟動指令碼

    #vi /usr/local/webserver/redis/start.sh

    #!/bin/bash

    /usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf

(2)停止指令碼

    #vi /usr/local/webserver/redis/stop.sh

    #!/bin/bash

    kill `cat /usr/local/webserver/redis/run/redis.pid`

(3)為服務指令碼賦許可權

    chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh

2.2.4啟動 redis 服務

    #/usr/local/webserver/redis/start.sh

驗證證服務是否成功:

    #netstat -nlpt | grep 6379

2.2.5啟動客戶端驗證

    #/usr/local/webserver/redis/redis-cli

    >set key1 val1

    >get key1

2.2.6停止redis服務

    #/usr/local/webserver/redis/stop.sh

2.3java客戶端例項

在Java客戶端,只需要將Jedis依賴的jar包:jedis-2.1.0.jar引入,就可以建立連線,然後進行讀寫操作了,如圖2.3所示。

圖2.3 java客戶端連線並讀寫redis

3、Redis主從配置

3.1Redis Master/Slave 主從配置

這裡我們配置 1臺Master +1臺Slave 為例子,其中:

    Master IP:192.168.32.166    Port:6379

    Slave IP:192.168.32.188     Port:6379

注意,兩臺機器的IP地址要在同一網段內,否則無法實現叢集。兩臺機器上均按照以上步驟安裝並配置好redis服務。在Slave機器上修改配置檔案,使其成為Master的從機。命令及配置如下:

    #vi /usr/local/webserver/redis/conf/redis.conf

    slaveof  192.168.32.166  6379

3.2啟動redis服務

先開啟主機上的服務,後開機從機上的服務。

3.3驗證M/S服務是否生效

主機上:

    /usr/local/webserver/redis/redis-cli

    >set key1 val1

    >quit

從機上:

    /usr/local/webserver/redis/redis-cli

    >get key1

    "val1" (表示資料成功同步了)

相關文章