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