1. 程式人生 > >redis 安裝 主從同步 哨兵模式

redis 安裝 主從同步 哨兵模式

一.redis 的安裝

1.先將安裝包放到linux的一個資料夾下面 2.解壓壓縮包如圖所示
3.解壓後進入解壓檔案

4.安裝: make 出現it.s a good idea to run 'make test'則表示安裝成功

如下圖:



5.修改redis.config檔案 a) 因為我們要在外網使用 需要將繫結的本機給註釋掉  並且在redis3.2之後新增了protected-mode配置,預設是yes, 我們這裡還要將他改成no 詳情參考這裡http://blog.csdn.net/sukexiaozi/article/details/52022449



b)保護程序   後臺啟動redis  將daemonize設定為yes
c)在這裡我修改一下埠號  以便對後面的哨兵和主從同步進行配置  這裡我把埠號改成6360

然後啟動redis     ./src/redis-server  ./redis.conf  然後檢視程序
入上圖 redis    6360埠起啟動了 然後本地測試: ./src/redis-cli -h localhost -p 6360
-h 是連線的主機ip,host的縮寫,-p 是埠 port的縮寫  ,-a 後面是密碼(requirepass 後面配置的)auth的縮寫 (這裡我們沒有設定密碼所以不用輸入
如下圖就是成功了  並且存值 123 為haha   123 位鍵    haha為值

然後外網測試:可以在另外一臺機器上安裝上redis通過redis-cli來連線     也可以通過工具連線測試比如RedisDesktopManager 因為我本地安裝了redis所以直接在本地連線伺服器上的redis來測試結果如下:

這樣redis就安裝完畢。

二.主從同步

當資料量變得龐大的時候,讀寫分離還是很有必要的。同時避免一個redis服務宕機,導致應用宕機的情況,我們啟用sentinel(哨兵)服務,實現主從切換的功能。

準備三個redis服務,依次命名資料夾子6360,6361,6362,我們這裡是一主兩從 主為master從為slave    master的使用6360埠。

並在同級目錄下建立bin目錄留作備用

結構如下:


接下來配置redis.config master為6360和剛才的配置一樣
slave1修改配置
port 6361 slaveof 127.0.0.1 6360 masterauth 123456 (這裡是master的密碼 如果沒有設定則不寫) requirepass 123456(這裡是slave1的密碼 如果沒有設定則不寫) slave2修改配置
port 6362 slaveof 127.0.0.1 6360 masterauth 123456 (這裡是master的密碼 如果沒有設定則不寫) requirepass 123456(這裡是slave2的密碼 如果沒有設定則不寫) 將各個配置檔案放到對應的資料夾下面 並將下面這些檔案複製到剛才建立的bin目錄下

redis-benchmark                redis效能測試工具 (src目錄下)

redis-check-aof                aof檔案修復程式(src目錄下) redis-check-rdb               RDB檔案檢查工具(src目錄下) redis-cli                      redis客戶端(src目錄下) redis-sentinel                 redis叢集(這個是2.8新增的功能,具體的再進一步摸索) redis-server                   redis伺服器   (src目錄下)
啟動三個redis ./bin/redis-server  ./6360/redis6360.conf
./bin/redis-server  ./6361/redis6361.conf
./bin/redis-server  ./6362/redis6362.conf
  測試方法就是連上 master的儲存一個值然後再連線上salve的獲取這個值能獲取則表示成功
從機能同步主機的值,主從複製,讀寫分離就實現了
但是萬一主機掛了怎麼辦,這是個麻煩事情,所以redis提供了一個sentinel(哨兵),以此來實現主從切換的功能,類似與zookeeper.

三.哨兵模式

我們配置三個sentinel程序:

port 26360 sentinel monitor mymaster 127.0.0.1 6360 2  (這裡是代表主機是 本地ip的6360埠  這個後面的數字2,是指當有兩個及以上的sentinel服務檢測到master宕機,才會去執行主從切換的功能
port 26361 sentinel monitor mymaster 127.0.0.1 6360 2
port 26362 sentinel monitor mymaster 127.0.0.1 6360 2 將三個sentinel.config分別放到不同的資料夾下 啟動sentinel服務 ./bin/redis-sentinel  ./6360/sentinel-6360.conf
./bin/redis-sentinel  ./6361/sentinel-6361.conf ./bin/redis-sentinel  ./6362/sentinel-6362.conf


結果如圖:


測試方法    把6360埠的redis殺了 然後分別連線redis6361 和redis6362   看看哪個能夠儲存進去值 則哪個變成了master  也表明哨兵成功了 因為只要主機可以寫  從機只能讀。