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