LVS+Redis部署手冊

來源:互聯網
上載者:User

標籤:

Redis是一個開源,先進的key-value儲存,並用於構建高效能,可擴充的Web應用程式的完美解決方案。

Redis從它的許多競爭繼承來的三個主要特點:

Redis資料庫完全在記憶體中,使用磁碟僅用於持久性。

相比許多索引值資料存放區,Redis擁有一套較為豐富的資料類型。

Redis可以將資料複製到任意數量的從伺服器。

REDIS優勢

異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。

支援豐富的資料類型:Redis支援最大多數開發人員已經知道像列表,集合,有序集合,散列資料類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的資料類型更好。

操作都是原子性:所有Redis操作是原子的,這保證了如果兩個用戶端同時訪問的Redis伺服器將獲得更新後的值。

多功能工具 + 生產力:Redis是一個多實用的工具,可以在多個用例如緩衝,訊息,隊列使用(Redis原生支援發布/訂閱),任何短暫的資料,應用程式,如Web應用程式工作階段,網頁命中計數等。

 

REDIS安裝

在redis官網下載最新的源碼包

http://download.redis.io/releases/redis-2.8.3.tar.gz

  1. 解壓

# tar xzf redis-3.0.0.tar.gz

  1. 拷貝目錄

# mv redis-3.0.0 /usr/local/redis

  1. 進入目錄

# cd /usr/local/redis

  1. 編譯

# make && make install

  1. 查看命令運行結果,如果是0則是成功

# echo $?

 

REDIS啟動

# redis-server

第一次啟動時可能會有提示的warning資訊;可以忽略,但最好是按照提示的處理辦法修改。

 

REDIS用戶端啟動

# redis-cli

驗證用戶端操作

# redis> set iom dtsoft

OK

# redis> get iom

“dtsoft”

REDIS主從同步編輯主機設定檔

# vim redis.conf

daemonize yes                    –進程後台啟動

logfile /usr/local/redis/redis.log       –記錄檔

syslog-enabled no                –日誌不寫進系統日誌

dir /usr/local/redis/data      –資料檔案存放

requirepass system                      –認證密碼

編輯從機設定檔

# vim redis.conf

daemonize yes

logfile /usr/local/redis/redis.log

syslog-enabled no

dir /usr/local/redis/data

slaveof 192.168.10.5 6379           –主伺服器的IP地址和連接埠

masterauth system                       –主伺服器上的認證密碼

 

啟動服務1、主機節點:

# cd /usr/local/redis/src/

# ./redis-server ../redis.conf –後面的設定檔一定要加上

2、從機節點:

# cd /usr/local/redis/src/

# ./redis-server ../redis.conf –後面的設定檔一定要加上

 

3、檢查連接埠

分別在主從機上執行,查看兩機相連連接埠是否是ESTABLISHED狀態。

# netstat -antp | grep 6379

4、驗證同步

主機節點:

# ./redis-cli

127.0.0.1:6379> set iom 123456

(error) NOAUTH Authentication required.        –需要認證許可權

127.0.0.1:6379> auth system

OK

127.0.0.1:6379> set iom 123456

OK

127.0.0.1:6379> get iom

“123456”

 

從機節點:

# ./redis-cli

127.0.0.1:6379> get iom             –在從伺服器不需要認證許可權

“123456”

keepalived配置路由機配置

編輯/etc/keepalived/keepalived.cnf檔案

global_defs {

router_id LVS_MASTER   #BACKUP上修改為LVS_BACKUP

}

 

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.10.252       #redis

}

}

 

 

 

 

virtual_server 192.168.10.252 6379 {

delay_loop 6

lb_algo rr

lb_kind DR

#lb_kind NAT

#    persistence_timeout 3

protocol TCP

 

real_server 192.168.10.3 6379 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 6379

}

}

 

real_server 192.168.10.5 6379 {

weight 3

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 6379

}

}

}

重啟keepalived服務

# service keepalived restart

redis主從機配置

編寫執行指令碼

#vi  lvs_real

  1. #!/bin/bash
  2. #description:startrealserver
  3. VIP=192.168.10.252
  4. case “$1” in
  5. start)
  6. echo “startLVSofREALServer”
  7. /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  8. echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
  9. echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
  10. echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
  11. echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce
  12. sysctl –p >/dev/null 2>&1
  13. ;;
  14. stop)d
  15. /sbin/ifconfig lo:0 down
  16. echo “closeLVSDirectorserver”
  17. echo “0”>/proc/sys/net/ipv4/conf/lo/arp_ignore
  18. echo “0”>/proc/sys/net/ipv4/conf/lo/arp_announce
  19. echo “0”>/proc/sys/net/ipv4/conf/all/arp_ignore
  20. echo “0”>/proc/sys/net/ipv4/conf/all/arp_announce
  21. ;;
  22. *)
  23. echo “Usage:$0{start|stop}”
  24. exit 1
  25. esac

 

執行指令碼

# /lvs_real start

 

系統測試1、測試環境

VIP/路由機:192.168.10.252

redis主:192.168.10.3

redis備:192.168.10.4

客戶機:192.168.10.1

 

2、測試過程

客戶機運行redis用戶端:

# redis-cli –h 192.168.10.252 –p 6379

redis:6379> auth system –第一次需要輸入密碼

OK

redis:6379> get iom

“123456”

 

關掉redis主機

 

客戶機運行redis用戶端

redis:6379> get iom

“123456”   –仍能得到iom值

 

啟動redis主機

 

客戶機重啟redis用戶端

# redis-cli –h 192.168.10.252 –p 6379

 

路由機運行lvs監控命令。

# watch ipvsadm –lc

可以看到destination顯示的是主節點IP。

 

每次客戶機重啟redis用戶端,destination顯示IP在主備節點替換(lvs路由配置為輪詢,即lb_algo rr

)。

 

3、測試注意
  • redis從節點預設配置為唯讀,客戶機串連分配到從節點後只能執行查詢操作,不能增刪。從節點若想也可執行修改操作需將redis設定檔的slave-read-only選項改為no。
  • 客戶機只要沒退出redis用戶端,將一直固定串連同個redis節點。
  • redis節點故障恢複後keepalived會立刻將其併入redis叢集,但此時有可能恢複的redis節點資料比其它節點舊,一定要先同步資料再將其併入叢集。

LVS+Redis部署手冊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.