CentOS 下載:http://mirrors.aliyun.com/centos/
Redis:http://download.redis.io/releases/
CentOS 1908 配置 Redis 5.0.7 一(單節點)
CentOS 1908 配置 Redis 5.0.7 二(主從複製)
CentOS 1908 配置 Redis 5.0.7 四(集羣配置)
CentOS 1908 配置 Redis 5.0.7 五(集羣新增 主從節點)
- 在 Redis 文件夾中,複製一份 redis.conf:
cp redis.conf redis6379.conf cp redis.conf redis6380.conf cp redis.conf redis6381.conf
- 配置 redis*.conf
- redis6379.conf:
# 註釋 bind # bind 127.0.0.1 protected-mode no port 6379 daemonize yes
- redis6380.conf:
# 註釋 bind # bind 127.0.0.1 protected-mode no port 6380 slaveof 127.0.0.1 6379 daemonize yes
- redis6381.conf:
# 註釋 bind # bind 127.0.0.1 protected-mode no port 6381 slaveof 127.0.0.1 6379 daemonize yes
- redis6379.conf:
- 在 Redis 文件夾中,複製一份 redis.conf:
cp sentinel.conf sentinel26379.conf cp sentinel.conf sentinel26380.conf cp sentinel.conf sentinel26381.conf
- 配置 sentinel26379.conf:
- sentinel.conf:
port 26379 sentinel monitor mymaster 127.0.0.1 6379 2
- sentinel26380.conf:
port 26380 sentinel monitor mymaster 127.0.0.1 6379 2
- sentinel26381.conf:
port 26381 sentinel monitor mymaster 127.0.0.1 6379 2
- sentinel.conf:
- 啓動 Redis(按照主從順序):
src/redis-server redis6379.conf src/redis-server redis6380.conf src/redis-server redis6381.conf
- 啓動哨兵(按照主從順序):
src/redis-sentinel sentinel26379.conf src/redis-sentinel sentinel26380.conf src/redis-sentinel sentinel26381.conf
- 查看Redis狀態:
- 查看 redis 6379(主節點):
從下面的 role:master 可以看出,redis 6379 爲主節點:[root@192 redis-5.0.7]# src/redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6380,state=online,offset=26140,lag=0 slave1:ip=127.0.0.1,port=6381,state=online,offset=26140,lag=1 master_replid:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:26140 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:26140 127.0.0.1:6379>
- 查看 redis 6380(從節點):
從下面的 role:slave 可以看出,redis 6380 爲從節點:[root@192 redis-5.0.7]# src/redis-cli -h 127.0.0.1 -p 6380 127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:37795 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:37795 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:37795 127.0.0.1:6380>
- 查看 redis 6381(從節點):
從下面的 role:slave 可以看出,redis 6381 爲從節點:[root@192 redis-5.0.7]# src/redis-cli -h 127.0.0.1 -p 6381 127.0.0.1:6381> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:46230 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:46230 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:46230 127.0.0.1:6381>
- 查看 redis 6379(主節點):
- 故障轉移:
- 將 redis 6379 強制停止:
[root@192 redis-5.0.7]# ps -ef | grep redis root 2703 1 0 16:18 ? 00:00:00 src/redis-server *:6379 root 2708 1 0 16:18 ? 00:00:00 src/redis-server *:6380 root 2714 1 0 16:18 ? 00:00:00 src/redis-server *:6381 root 2810 1 0 16:21 ? 00:00:00 src/redis-sentinel *:26379 [sentinel] root 2815 1 0 16:21 ? 00:00:00 src/redis-sentinel *:26380 [sentinel] root 2820 1 0 16:21 ? 00:00:00 src/redis-sentinel *:26381 [sentinel] root 51237 42180 0 16:23 pts/1 00:00:00 src/redis-cli -h 127.0.0.1 -p 6379 root 51296 51258 0 16:24 pts/2 00:00:00 src/redis-cli -h 127.0.0.1 -p 6380 root 51352 51316 0 16:25 pts/3 00:00:00 src/redis-cli -h 127.0.0.1 -p 6381 root 51412 2368 0 16:29 pts/0 00:00:00 grep --color=auto redis [root@192 redis-5.0.7]# kill -9 2703 [root@192 redis-5.0.7]#
- 查看主從節點:
- redis 6379 已停止。
- 查看 redis 6380:
從下面的 role:slave 可以看出,redis 6380 爲從節點:127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6381 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:112137 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:764de6af1521b0204f26d230547986bc2d629efb master_replid2:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_repl_offset:112137 second_repl_offset:102882 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:112137 127.0.0.1:6380>
- 查看 redis 6381:
從下面的 role:master 可以看出,redis 6381 爲主節點(故障產生時,使用投票機制選舉中的主節點):127.0.0.1:6381> info replication # Replication role:master connected_slaves:1 slave0:ip=127.0.0.1,port=6380,state=online,offset=112536,lag=1 master_replid:764de6af1521b0204f26d230547986bc2d629efb master_replid2:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_repl_offset:112669 second_repl_offset:102882 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:112669 127.0.0.1:6381>
- 將 redis 6379 強制停止:
- 故障修復:
- 重新啓動 redis 6379:
src/redis-server redis6379.conf
- 查看 redis 6379:
從下面的 role:slave 可以看出,redis 6379 爲從節點(主節點故障修復後,轉爲從節點):127.0.0.1:6379> info replication # Replication role:slave master_host:127.0.0.1 master_port:6381 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:154482 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:764de6af1521b0204f26d230547986bc2d629efb master_replid2:0000000000000000000000000000000000000000 master_repl_offset:154482 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:146690 repl_backlog_histlen:7793 127.0.0.1:6379>
- 查看 redis 6380:
從下面的 role:slave 可以看出,redis 6380 爲從節點:127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6381 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:160376 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:764de6af1521b0204f26d230547986bc2d629efb master_replid2:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_repl_offset:160376 second_repl_offset:102882 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:160376 127.0.0.1:6380>
- 查看 redis 6381:
從下面的 role:master 可以看出,redis 6381 爲主節點(故障產生時,使用投票機制選舉中的主節點,除發生故障外,主節點將保持不變):127.0.0.1:6381> info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6380,state=online,offset=166949,lag=1 slave1:ip=127.0.0.1,port=6379,state=online,offset=167082,lag=0 master_replid:764de6af1521b0204f26d230547986bc2d629efb master_replid2:4333b9916945c9fc15b003ce0ff61ec7455cc0e8 master_repl_offset:167082 second_repl_offset:102882 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:167082 127.0.0.1:6381>
- 重新啓動 redis 6379:
- 只能在主節點增加修改數據。