redis 安裝 主從同步 哨兵模式

一.redis 的安裝
1.先將安裝包放到linux的一個文件夾下面linux

2.解壓壓縮包如圖所示redis

 

3.解壓後進入解壓文件服務器

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

以下圖:ide

 

5.修改redis.config文件高併發

a)由於咱們要在外網使用 須要將綁定的本機給註釋掉  而且在redis3.2以後新增了protected-mode配置,默認是yes, 咱們這裏還要將他改爲no工具

詳情參考這裏http://blog.csdn.net/sukexiaozi/article/details/52022449性能

 

 

 

b)保護進程   後臺啓動redis  將daemonize設置爲yes測試

 

 

c)在這裏我修改一下端口號  以便對後面的哨兵和主從同步進行配置  這裏我把端口號改爲6360ui

 

而後啓動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  也代表哨兵成功了

由於只要主機能夠寫  從機只能讀。

 

注意:

以上的這些 只涉及到 主從同步,和哨兵 這兩點  ,這和集羣的概念不一樣。

redis主從:是備份關係, 咱們操做主庫,數據也會同步到從庫。 若是主庫機器壞了,從庫能夠上。就比如你 D盤的片丟了,可是你移動硬盤裏邊備份有。redis哨兵:哨兵保證的是HA,保證特殊狀況故障自動切換,哨兵盯着你的「redis主從集羣」,若是主庫死了,它會告訴你新的老大是誰。redis集羣:集羣保證的是高併發,由於多了一些兄弟幫忙一塊兒扛。同時集羣會致使數據的分散,整個redis集羣會分紅一堆數據槽,即不一樣的key會放到不不一樣的槽中--------------------- 做者:zmemorys 來源:CSDN 原文:https://blog.csdn.net/zmemorys/article/details/78196314 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索