【NoSql】Redis實踐篇-安全性與主從複製配置(二)

來源:互聯網
上載者:User

標籤:


一:安全性

 

為redis設定密碼:設定用戶端串連後進行任何其他指定前需要實用的密碼。

 

警告:因為redis速度非常快,所以在一台較好的伺服器下,一個外部使用者可以在一秒鐘進行150k次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。

 

修改密碼的方法:

 

只需要在redis的設定檔redis.conf中開啟requirepass就可以了,比如我設定我的訪問密碼是hejingyuan




requirepass hejingyuan

 

在redis.conf中加入這一行代碼之後,需要重新啟動

 

然後我們用用戶端(redis-cli)發現還能登陸進來,但是當我們執行操作的時候,比如keys*就會如下錯誤:

 



 

在這裡redis支援兩種授權方式,一種就是直接用auth命令進行授權:

 

輸入正確的密碼,返回ok,授權成功,之後就可以進行所有的操作。

 

如果我們不想每次登入進來之後都要用auth進行授權,那麼我們可以採用另一種授權方式,就是在登陸用戶端的時候用-a來指定密碼

 




上面的密碼如果輸錯,也能進入,但是之後不能進行操作。需要用auth重新進行授權。

 

 

二:主從複製

 

Redis的主從複製功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級伺服器叢集架構。


執行過程:

 

1.slave與master建立串連,發送sync同步命令。

2.Master會啟動一個後台進程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝。

3.後台完成儲存後,將檔案發送給slave

4.slave將檔案儲存到硬碟上

 

特點:

 

1.master可以有多個slave

2.除了多個slave連到相同的master外,slave也可以串連其他slave形成圖狀結構(這樣做的原因是如果master down掉之後其中的一台slave立馬可以充當master的角色,這樣整個服務流程不受影響)

3.主從複製不會阻塞master。也就是說當一個或多個slave與master進行初次同步資料時,master可以繼續處理client發來的請求。相反slave在初次同步資料時則會阻塞不能處理client的請求。

4.主從複製可以用來提高系統的延展性,我們可以用多個slave專門用於client的讀請求,比如sort操作可以使用slave來處理(需要配置slave)。也可以用來做簡單的資料冗餘

5.可以在master禁用資料持久化,只需要注釋掉master設定檔中的所有save配置,然後只在slave上配置資料持久化即Master可以將資料儲存操作交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操作。

 

實戰:


通過上面的介紹,我們對redis的主從複製有了個大概瞭解,下面講講具體怎麼配置master/slave。由於條件限制,這裡用一台機器,啟動兩個進程來進行主從複製。

 

master server設定檔master.conf, 主要配置如下:

 

port 6379 

#save 900 1 

#save 300 10 

#save 60 10000 

 

slave server設定檔slave.conf,主要配置如下:

 

Slave1:

 

port 6380 

save 900 1 

save 300 10 

save 60 10000 

slaveof 192.168.24.215 6379

 

Slave2:

 

port6381 

save 900 1 

save 300 10 

save 60 10000 

slaveof 192.168.24.215 6379

 

啟動master以及兩個slave

 

測試回合: 串連master server,寫入資料;串連 slave server,讀資料


 


 

從測試結果看,資料確實自動複製了。通過複製功能,我們可以在master上唯寫資料,在slave上讀資料,關閉master的持久化(或aof)功能(在salve上開啟),從而分擔master伺服器讀壓力,提高master伺服器效能,同時,master掛了,可以快速地用slave server來替換master server,提高系統的可用性。

 

在實際環境中,我們可以根據redis複製特點,定製適合我們自己的複製架構。比如,採用master server ->slave server ->slave server ->slave server這種一拖一【或一拖一再拖多】的方式,和常規的一拖多方式相比,這種方式更能減少master server在複製資料時的壓力。

 

又如,單台redis主會遇到單點故障的問題,為瞭解決redis的高可用。接下來我們想達到的目的是,一個master帶一個slave,而slave又帶了一個slave,這樣的好處是,當master故障後,直接把slaver1改為master,其他的配置不需要修改,服務又可以正常使用。

 

 


修改相應的配置

將slave2設定檔進行修改,其他不變

 

save 900 1

save 300 10

save 60 10000

slaveof192.168.24.214 6379

 

當master故障後,需要在slave1上首先執行slaveof no one命令,再次執行info Replication時,它已經轉為master了,此時slave2不受影響。

 

 

 

 


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【NoSql】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.