網站首頁 編程語言 正文
云服務器搭建redis主從復制以及哨兵模式(附踩坑記錄)
踩坑記錄見最后
搭建一主兩從:
-
在根目錄下任意新建一個目錄/myredis來存放配置文件:
-
將我們常用的redis.conf文件拷貝到該目錄下:
-
創建三個配置文件,分別對應不同端口的redis服務:
主機的配置文件
由于我之前使用的是RDB的方式持久化,因此這里只需要更改dbfilename “dump6379.rdb”include /myredis/redis.conf pidfile "/var/run/redis_6379.pid" port 6379 dbfilename "dump6379.rdb"
兩個從機的配置文件
注意!這里的replicaof 127.0.0.1 6380 如果將127.0.0.1修改為服務器的ip地址,則一定要在安全組中將該服務器的對應的6380,6381端口放行!!建議初學者這里直接使用127.0.0.1,否則后面會有麻煩!如果有設置密碼,則需要加masterauth 你的密碼
include /myredis/redis.conf pidfile "/var/run/redis_6380.pid" port 6380 dbfilename "dump6380.rdb" replicaof 127.0.0.1 6380 masterauth 你的密碼
-
以不同的配置文件分別啟動redis-server,可以開三個窗口能更方便的檢測變換。
-
以不同的端口號啟動redis-cli
-
在不同的redis客戶端查看各個redis的對應信息:
使用命令info replication
主機的部分信息:
從機的部分信息: -
在主機中測試,發現可以進行讀和寫,在從機中測試,發現只能讀不能寫。
這樣主從復制就搭建完畢
搭建哨兵模式
-
先創建一個配置文件,命名為sentinel.conf
-
在配置文件中加入一段代碼:
如果之前的服務器都設有密碼則需要 sentinel auth-pass mymaster (你的密碼),如果沒有設置密碼則不需要該句sentinel monitor mymaster 127.0.0.1 6379 1 sentinel auth-pass mymaster (你的密碼)
? 該Sentinel監控的master(主服務器)的名字叫做mymaster,地址為127.0.0.1:6379
? 數字1表示 :當一個哨兵主觀認為主機斷開,就可以客觀認為主機故障,然后開始選舉新的主機。
-
啟動哨兵
redis-sentinel sentinel.conf
-
將主機shutdown
-
此時在查看兩個從機:
? 6380端口對應的redis已經變成了主機
? 6381端口的主機變為了6380 -
再將6379啟動
? 6379:發現6379變成了6380的從機!新皇登基!
踩坑記錄!
主從復制:
- 如果redis的配置文件設置了requiredpass,則在配置從服務器的時候,配置文件需要帶上masterauth 你的密碼
哨兵模式:
- 如果之前的服務器都設有密碼則在寫sentinel.conf的時候需要 加上sentinel auth-pass mymaster (你的密碼),如果沒有設置密碼則不需要加。如果不加的話,在開啟哨兵模式之后可能無法檢測到從服務器。
- 如果redis.conf 保護模式在關閉(protected-mode no),則注釋掉ip訪問限制(注釋掉bind 127.0.0.1)
- 如果redis.conf 保護模式在開啟(protected-mode yes),則添加需要的ip訪問限制 (bind 需要的ip)
- 在配置主從復制的時候,如果配置從服務器的主服務器IP地址的時候,一定要將服務器的安全組或者防火墻的對應的端口號都打開,否則將不能切換主服務器!
- 在shutdown主服務器之后,哨兵需要等一會才能檢測到。
原文鏈接:https://blog.csdn.net/weixin_51363503/article/details/127249631
- 上一篇:C++eof()判斷是否讀取到文件尾
- 下一篇:線上nginx偶爾出現502錯誤
相關推薦
- 2022-07-02 SpringBoot-?@SessionAttributes--使用/實例
- 2022-06-16 golang?gorm錯誤處理事務以及日志用法示例_Golang
- 2022-06-25 詳解如何基于Pyecharts繪制常見的直角坐標系圖表_python
- 2022-02-01 nginx 上傳圖片出現跨域
- 2022-08-20 Django細致講解多對多使用through自定義中間表方法_python
- 2022-04-04 微信登陸失敗Error: invalid code
- 2022-12-28 jquery實現點擊瀏覽器返回上一頁按鈕并能直接刷新_jquery
- 2022-07-23 Python實現環形鏈表_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支