1、安裝redis
首先下載redis安裝包redis
[root@mymaster yasuobao]# pwd /root/yasuobao [root@mymaster yasuobao]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解壓[root@mymaster yasuobao]# tar -zxvf redis-5.0.5.tar.gz
下載gcc、c[root@mymaster yasuobao]# yum install gcc c -y
編譯vim
[root@mymaster yasuobao]# cd redis-5.0.5 [root@mymaster redis-5.0.5]# ls 00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi sentinel.conf tests BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel src utils [root@mymaster redis-5.0.5]# make && make install [root@mymaster redis-5.0.5]# make install PREFIX=/usr/local/redis
拷貝配置文件api
[root@mymaster redis-5.0.5]# cp ./redis.conf /usr/local/redis/bin [root@mymaster redis-5.0.5]# cd /usr/local/redis/bin
測試redis[root@mymaster bin]# ./redis-server
回到解壓目錄utils裏安全
[root@mymaster bin]# cd /root/yasuobao/redis-5.0.5/utils [root@mymaster utils]# ./install-server.sh
2、redis的主從複製服務器
註釋bind 127.0.0.1網絡
在配置文件redis.conf中,默認的bind 接口是127.0.0.1,也就是本地迴環地址。這樣的話,訪問redis服務只能經過本機的客戶端鏈接,而沒法經過遠程鏈接,這樣能夠避免將redis服務暴露於危險的網絡環境中,防止一些不安全的人隨隨便便經過遠程,可是咱們作主從複製。ide
可是搭建主從複製,須要另外一臺redis端鏈接到本機,因此要將其註釋。測試
[root@mymaster utils]# cd /etc/redis/ [root@mymaster redis]# ls 6379.conf sentinel.conf [root@mymaster redis]# vim 6379.conf
關閉保護模式
3d
另外一臺redis端(從)在其配置文件作一樣操做,而且須要指定master端ip和端口code
如上操做所示,已經完成redis的主從複製,測試:在master端 set name lxc,slave查看
slave:
至此,完成主從複製。
3、redis的高可用
高可用原理:
自動故障遷移(Automatic failover): 當一個主服務器不能正常工做時, Sentinel 會開始一次自動故障遷移操做, 它會將失效主服務器的其中一個從服務器升級爲新的主服務器, 並讓失效主服務器的其餘從服務器改成複製新的主服務器; 當客戶端試圖鏈接失效的主服務器時, 集羣也會向客戶端返回新主服務器的地址, 使得集羣能夠使用新主服務器代替失效服務器。
配置環境:三臺虛擬機安裝 redis 服務
mymaster:172.18.74.59 myslave:172.18.74.119 myslave02:172.18.74.87
按主從複製先配置好一主兩從
在安裝包中將 sentinel 文件複製到/etc/redis/下
[root@mymaster redis-5.0.5]# cp sentinel.conf /etc/redis/ [root@mymaster redis-5.0.5]# cd /etc/redis/ [root@mymaster redis]# ls 6379.conf sentinel.conf
關閉保護模式[root@mymaster redis]# vim sentinel.conf
配置指示 Sentinel 去監視一個名爲 mymaster 的主服務器,這個主服務器的IP 地址爲 172.18.74.59,端口號爲 6379 ,而將這個主服務器判斷爲失效至少須要 2 個 Sentinel 贊成(只要贊成 Sentinel 的數量不達標,自動故障遷移就不會執行)
down-after-milliseconds 選項指定了 Sentinel 認爲服務器已經斷線所需的毫秒數。若是服務器在給定的毫秒數以內, 沒有返回 Sentinel 發送的 PING 命令的回覆, 或返回一個錯誤, 那麼 Sentinel 將這個服務器標記爲主觀下線
完成後將 sentinel 配置文件發送 兩個從節點
scp /etc/redis/sentinel.conf 172.18.74.119:/etc/redis/ scp /etc/redis/sentinel.conf 172.18.74.87:/etc/redis/
把redis命令加入環境變量export PATH=$PATH:/usr/local/redis/bin
刷新profilesource /etc/profile
三臺服務器按主從順序啓動reids
redis-server /etc/reids/6379.conf redis-sentinel /etc/redis/sentinel.conf &
mymaster
myslave
myslave02
而後在查看mymaster
會發現多了幾條信息
+slave 表示 :一個新的從服務器已經被 Sentinel 識別並關聯。能夠看到片此時 master 是 172.18.74.59;172.18.74.119 和 172.18.74.87 是 slave。
測試:master 端 和slave端 info 查看 replication 信息:
mymaster
下拉
myslave
myslave02
而後把mymaster的redis的相關服務關閉
在myslave上看到有提示信息,把本身變爲master把原來的master變爲slave
+switch-master :配置變動,主服務器的 IP 和地址已經改變。
+sdown :給定的實例 mymaster如今處於主觀下線狀態。
查看一下,myslave的info
能夠看到主已經切換了,如此便實現了高可用