Redis安裝及主從配置


 

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" (表示數據成功同步了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM