Redis主從復(fù)制

一主一從結(jié)構(gòu)
一主一從結(jié)構(gòu).png
  • 默認(rèn)redis都是主服務(wù)器,所以無(wú)需配置
[root@redis1 ~]# redis-cli 
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:0
master_replid:a839f0060f5e8d9894a1fafeeea973c3c52e5e71
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
  • 配置redis2(192.168.1.12)為redis1的從服務(wù)器
    通過(guò)命令進(jìn)行配置(臨時(shí)生效)
[root@redis2 ~]# redis-cli 
127.0.0.1:6379> SLAVEOF 192.168.1.11 6379
OK

127.0.0.1:6379> INFO replication
# Replication
role:slave
master_host:192.168.1.11
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:14
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:7a4326738b63379fc5def4177a1ba6fff33d0a98
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14
  • 永久生效
[root@redis2 ~]# vim /etc/redis/6379.conf 
slaveof 192.168.1.11 6379
配置帶驗(yàn)證的主從復(fù)制

基于以上示例【一主一從結(jié)構(gòu)】,配置認(rèn)證

一主一從結(jié)構(gòu).png
  • 配置主服務(wù)器redis1的連接密碼為guodong.com
# 設(shè)置密碼
[root@redis1 ~]# vim +501 /etc/redis/6379.conf
requirepass guodong.com

# 修改服務(wù)腳本
[root@redis1 ~]# vim +43  /etc/init.d/redis_6379
$CLIEXEC -p $REDISPORT -a guodong.com shutdown
            
# 重啟服務(wù)
[root@redis1 ~]# service redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...
  • 配置從服務(wù)器
# 修改配置文件,設(shè)置主服務(wù)器連接密碼
[root@redis2 ~]# vim +289 /etc/redis/6379.conf
masterauth guodong.com

# 重啟服務(wù)
[root@redis2 ~]# service redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...
  • 在從服務(wù)器本機(jī)連接服務(wù),查看復(fù)制信息
[root@redis2 ~]# redis-cli
127.0.0.1:6379> info replication
# Replication
role:slave                          # 角色為從服務(wù)器
master_host:192.168.1.11            # 主服務(wù)器地址
master_port:6379                         # 主服務(wù)器端口
master_link_status:up                   # 到主服務(wù)器的連接狀態(tài)
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:70
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:94e2bea7fc81fa71b1193df29b0984190c01bacc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:70
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:70
哨兵服務(wù)
  • 監(jiān)視master服務(wù)器

  • 發(fā)現(xiàn)master宕機(jī)后,將從服務(wù)器升級(jí)為主服務(wù)器


    配置哨兵服務(wù)
  • 配置哨兵服務(wù)

# 在redis服務(wù)器(如redis1)上,拷貝哨兵程序到哨兵服務(wù)器
[root@redis1 ~]# scp -r /usr/local/redis 192.168.1.19:/usr/local

# 在sentinel1上,將redis命令目錄添加至PATH環(huán)境變量
[root@sentinel1 ~]# echo 'export PATH=$PATH:/usr/local/redis/bin' >> /etc/bashrc
[root@sentinel1 ~]# source /etc/bashrc

# 創(chuàng)建哨兵配置文件
[root@sentinel1 ~]# vim /etc/sentinel.conf
sentinel monitor redis1 192.168.1.11 6379 1   # 監(jiān)視主服務(wù)器
bind 0.0.0.0                                                          # 哨兵服務(wù)運(yùn)行地址
sentinel auth-pass redis1 guodong.com                        # 連接主服務(wù)器的密碼
  • 啟動(dòng)哨兵服務(wù)
[root@sentinel1 ~]# redis-sentinel /etc/sentinel.conf
30557:X 12 May 10:12:44.026 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
30557:X 12 May 10:12:44.026 # Redis version=4.0.8, bits=64, commit=00000000, modified=0, pid=30557, just started
30557:X 12 May 10:12:44.026 # Configuration loaded
30557:X 12 May 10:12:44.028 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 4.0.8 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 30557
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

30557:X 12 May 10:12:44.033 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
30557:X 12 May 10:12:44.049 # Sentinel ID is 40460aaa4df5543a000bf8f464c6698a712d2697
30557:X 12 May 10:12:44.049 # +monitor master redis1 192.168.1.11 6379 quorum 1
30557:X 12 May 10:12:44.051 * +slave slave 192.168.1.12:6379 192.168.1.12 6379 @ redis1 192.168.1.11 6379
  • 測(cè)試配置
# 停止主服務(wù)器redis1的redis服務(wù)
[root@redis1 ~]# service redis_6379 stop
Stopping ...
Redis stopped

# 在redis2上查看redis服務(wù)狀態(tài)
[root@redis2 ~]# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master              # 已經(jīng)變?yōu)橹鞣?wù)器
connected_slaves:0
master_replid:da33c07e16dc1b90d14a20004e9f5d9b3a7b9081
master_replid2:94e2bea7fc81fa71b1193df29b0984190c01bacc
master_repl_offset:10054
second_repl_offset:8936
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:10054
  • 啟動(dòng)redis1,查看redis1信息
[root@redis1 ~]# service redis_6379 start
Starting Redis server...

[root@redis1 ~]# redis-cli -a guodong.com
127.0.0.1:6379> info replication
# Replication
role:slave                          # 角色為從服務(wù)器
master_host:192.168.1.12       # 主服務(wù)器地址
master_port:6379               # 主服務(wù)器端口
master_link_status:up          # 到主服務(wù)器的連接狀態(tài)
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:62014
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:da33c07e16dc1b90d14a20004e9f5d9b3a7b9081
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:62014
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:61430
repl_backlog_histlen:585
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、什么是主從復(fù)制 Redis持久化保證了即使redis服務(wù)重啟也不會(huì)丟失數(shù)據(jù),因?yàn)閞edis服務(wù)重啟后會(huì)將硬盤(pán)...
    獨(dú)釣寒雪1795閱讀 649評(píng)論 0 47
  • 本篇就一下方面展開(kāi)分析 如何使用主從復(fù)制? 主從復(fù)制的原理(重點(diǎn)是全量復(fù)制和部分復(fù)制、以及心跳機(jī)制) 實(shí)際應(yīng)用中需...
    lucode閱讀 1,059評(píng)論 0 5
  • 什么是主從復(fù)制 持久化保證了即使 redis 服務(wù)重啟也會(huì)丟失數(shù)據(jù),因?yàn)?redis 服務(wù)重啟后會(huì)將硬盤(pán)上持久化的...
    Java黎先生閱讀 729評(píng)論 0 2
  • 一、主從復(fù)制 Rdis 的主從復(fù)制特點(diǎn) 1. 配置主從 實(shí)現(xiàn)方式同樣有兩種: 命令方式和配置文件方式 命令方式 只...
    huangstts閱讀 304評(píng)論 0 0
  • 什么是主從復(fù)制 持久化保證了即使redis服務(wù)重啟也不會(huì)丟失數(shù)據(jù),因?yàn)閞edis服務(wù)重啟后會(huì)將硬盤(pán)上持久化的數(shù)據(jù)恢...
    Ifthe_1da7閱讀 172評(píng)論 0 0

友情鏈接更多精彩內(nèi)容