【Redis 集群搭建】

铁佛  金牌会员 | 2024-11-25 14:09:25 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

目录

一、 同主机搭建redis 集群

1、 情况介绍

   一台机器 一主两从集群搭建

  操纵系统Centos 7内核版本3.10.0-957.21.3.el7.x86_64IP地址master: 7001slave1: 7002 slave2: 7003Redis7.2.5 2、 情况前准备工作

  1. # 关闭防火墙
  2. systemctl stop firewalld
  3. systemctl disable firewalld
  4. # 修改 hostname
  5. hostnamectl set-hostname xxxx  # 修改后退出当前终端重新连接即可
  6. # 更新下软件源
  7. # 地址 https://developer.aliyun.com/mirror/
  8. # 时区调整,时间校准
  9. date -R
  10. timedatectl set-timezone Asia/Shanghai
  11. yum -y install ntp
  12. ntpdate ntp1.aliyun.com
  13. # 关闭 selinux:
  14. sed -i 's/enforcing/disabled/' /etc/selinux/config
  15. setenforce 0
复制代码
3、 安装 Redis 7.2.5

  1. # 下载地址
  2. http://download.redis.io/releases/
  3. # 下载
  4. wget http://download.redis.io/releases/redis-7.2.5.tar.gz
  5. # 解压
  6. tar -xvf redis-7.2.5.tar.gz -C /opt/redis
  7. # 进入目录
  8. cd /opt/redis/redis-7.2.5
  9. # 编译
  10. make MALLOC=libc
  11. # 安装 注意如果安装提示python3不存在 执行 yum install -y python3
  12. make install PREFIX=/usr/local/redis
  13. # 配置环境变量
  14. vi /etc/profile.d/redis.sh
  15. #!/bin/bash
  16. export REDIS_HOME=/usr/local/redis
  17. export PATH=$PATH:$REDIS_HOME/bin
  18. # 使其配置生效
  19. source /etc/profile.d/redis.sh
复制代码
4、redis 设置修改而且启动

4.1 修改设置文件

  1. # 创建redis数据存储目录
  2. mkdir -p /usr/local/redis/data/700{1..3}
  3. # 创建redis配置文件存储目录
  4. mkdir -p /usr/local/redis/conf
  5. # 创建redis日志存储目录
  6. mkdir -p /usr/local/redis/log/700{1..3}
  7. # 创建redis pid存储目录
  8. mkdir /usr/local/redis/run
  9. # redis配置文件 7001
  10. # 开启保护模式
  11. protected-mode yes
  12. # 添加本机的ip
  13. bind 192.168.2.1   
  14. # 端口  
  15. port 7001
  16. # pid存储目录
  17. pidfile /usr/local/redis/run/redis_7001.pid   
  18. # 日志存储目录
  19. logfile /usr/local/redis/log/16370/redis_7001.log
  20. # 数据存储目录,目录要提前创建好
  21. dir /usr/local/redis/data/7001
  22. # 设置实例的验证口令
  23. requirepass 你的密码
  24. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  25. # 此配置项中值需要和master机器的“requirepass”保持一致
  26. masterauth 你的密码
  27. # 配置RDB持久化策略
  28. save 900 1
  29. save 300 10
  30. save 60 10000
  31. # 配置AOF持久化
  32. appendonly yes
  33. appendfsync everysec
  34. # 守护进程
  35. daemonize yes  
  36. # redis配置文件 7002# 开启保护模式
  37. protected-mode yes
  38. # 添加本机的ip
  39. bind 192.168.2.1   
  40. # 端口  
  41. port 7002
  42. # pid存储目录
  43. pidfile /usr/local/redis/run/redis_7002.pid   
  44. # 日志存储目录
  45. logfile /usr/local/redis/log/16370/redis_7002.log
  46. # 数据存储目录,目录要提前创建好
  47. dir /usr/local/redis/data/7002
  48. # 设置实例的验证口令
  49. requirepass 你的密码
  50. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  51. # 此配置项中值需要和master机器的“requirepass”保持一致
  52. masterauth 你的密码
  53. # 配置RDB持久化策略
  54. save 900 1
  55. save 300 10
  56. save 60 10000
  57. # 配置AOF持久化
  58. appendonly yes
  59. appendfsync everysec
  60. # 守护进程
  61. daemonize yes  
  62. # redis配置文件 7003
  63. # 开启保护模式
  64. protected-mode yes
  65. # 添加本机的ip
  66. bind 192.168.2.1   
  67. # 端口  
  68. port 7003
  69. # pid存储目录
  70. pidfile /usr/local/redis/run/redis_7003.pid   
  71. # 日志存储目录
  72. logfile /usr/local/redis/log/16370/redis_7003.log
  73. # 数据存储目录,目录要提前创建好
  74. dir /usr/local/redis/data/7003
  75. # 设置实例的验证口令
  76. requirepass 你的密码
  77. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  78. # 此配置项中值需要和master机器的“requirepass”保持一致
  79. masterauth 你的密码
  80. # 配置RDB持久化策略
  81. save 900 1
  82. save 300 10
  83. save 60 10000
  84. # 配置AOF持久化
  85. appendonly yes
  86. appendfsync everysec
  87. # 守护进程
  88. daemonize yes  
  89. # 复制下面命令即可
  90. cat > /usr/local/redis/conf/redis_7001.conf <<EOF
  91. # 开启保护模式
  92. protected-mode yes
  93. # 添加本机的ip
  94. bind 192.168.2.1   
  95. # 端口  
  96. port 7001
  97. # pid存储目录
  98. pidfile /usr/local/redis/run/redis_7001.pid   
  99. # 日志存储目录
  100. logfile /usr/local/redis/log/16370/redis_7001.log
  101. # 数据存储目录,目录要提前创建好
  102. dir /usr/local/redis/data/7001
  103. # 设置实例的验证口令
  104. requirepass 你的密码
  105. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  106. # 此配置项中值需要和master机器的“requirepass”保持一致
  107. masterauth 你的密码
  108. # 配置RDB持久化策略
  109. save 900 1
  110. save 300 10
  111. save 60 10000
  112. # 配置AOF持久化
  113. appendonly yes
  114. appendfsync everysec
  115. # 守护进程
  116. daemonize yes
  117. EOF
  118. cat > /usr/local/redis/conf/redis_7002.conf <<EOF
  119. # 开启保护模式
  120. protected-mode yes
  121. # 添加本机的ip
  122. bind 192.168.2.1   
  123. # 端口  
  124. port 7002
  125. # pid存储目录
  126. pidfile /usr/local/redis/run/redis_7002.pid   
  127. # 日志存储目录
  128. logfile /usr/local/redis/log/16370/redis_7002.log
  129. # 数据存储目录,目录要提前创建好
  130. dir /usr/local/redis/data/7002
  131. # 设置实例的验证口令
  132. requirepass 你的密码
  133. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  134. # 此配置项中值需要和master机器的“requirepass”保持一致
  135. masterauth 你的密码
  136. # 配置RDB持久化策略
  137. save 900 1
  138. save 300 10
  139. save 60 10000
  140. # 配置AOF持久化
  141. appendonly yes
  142. appendfsync everysec
  143. # 守护进程
  144. daemonize yes
  145. EOF
  146. cat > /usr/local/redis/conf/redis_7003.conf <<EOF
  147. # 开启保护模式
  148. protected-mode yes
  149. # 添加本机的ip
  150. bind 192.168.2.1   
  151. # 端口  
  152. port 7003
  153. # pid存储目录
  154. pidfile /usr/local/redis/run/redis_7003.pid   
  155. # 日志存储目录
  156. logfile /usr/local/redis/log/16370/redis_7003.log
  157. # 数据存储目录,目录要提前创建好
  158. dir /usr/local/redis/data/7003
  159. # 设置实例的验证口令
  160. requirepass 你的密码
  161. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  162. # 此配置项中值需要和master机器的“requirepass”保持一致
  163. masterauth 你的密码
  164. # 配置RDB持久化策略
  165. save 900 1
  166. save 300 10
  167. save 60 10000
  168. # 配置AOF持久化
  169. appendonly yes
  170. appendfsync everysec
  171. # 守护进程
  172. daemonize yes
  173. EOF
复制代码
4.2 编写启动脚本

  1. # 启动脚本
  2. cat > /usr/local/redis/bin/master-slave_start.sh << EOF
  3. #!/bin/bash
  4. redis-server /usr/local/redis/conf/redis_7001.conf
  5. redis-server /usr/local/redis/conf/redis_7002.conf
  6. redis-server /usr/local/redis/conf/redis_7003.conf
  7. EOF
  8. # 赋予可执行权限
  9. chmod +x /usr/local/redis/bin/redis_cluster_start.sh
  10. # 关闭脚本
  11. vi /usr/local/redis/bin/redis_cluster_shutdown.sh
  12. #!/bin/bash
  13. kill -9 $(ps -ef | grep 1637 | grep -v grep | awk '{print $2}')
  14. # 赋予可执行权限
  15. chmod +x /usr/local/redis/bin/master-slave_shutdown.sh
复制代码
5、开启主从

5.1 开启

  1. # 以"192.168.2.1:7001"实例为主库,以"192.168.2.1:7002"实例和"192.168.2.1:7003"实例为从库。
  2. # -a 参数指定密码
  3. # 从库实例开启主从
  4. redis-cli -h 192.168.2.1 -p 7002 -a 你的密码 slaveof 192.168.2.1 7001
  5. redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 slaveof 192.168.2.1 7001
  6. # Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  7. # 警告:在命令行界面上使用带有“-a”或“-u”选项的密码可能不安全。  可以忽略
  8. # 解决方式
  9. # redis-cli -h 192.168.2.1 -p 7002 -a 你的密码 --no-auth-warning  slaveof 192.168.2.1 7001
复制代码
5.2 主库实例查看主从信息

  1. redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  2. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  3. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  4. # Replication
  5. role:master
  6. connected_slaves:2
  7. slave0:ip=192.168.2.1,port=7002,state=online,offset=8428,lag=0
  8. slave1:ip=192.168.2.1,port=7003,state=online,offset=8428,lag=1
  9. master_failover_state:no-failover
  10. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  11. master_replid2:0000000000000000000000000000000000000000
  12. master_repl_offset:8428
  13. second_repl_offset:-1
  14. repl_backlog_active:1
  15. repl_backlog_size:1048576
  16. repl_backlog_first_byte_offset:1
  17. repl_backlog_histlen:8428
复制代码
5.3 从库实例查看主从信息

  1. # 192.168.2.1:7002 查看主从信息
  2. redis-cli -h 192.168.2.1 -p 7002 -a 你的密码  info replication
  3. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7002 -a 你的密码  info replication
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. # Replication
  6. role:slave
  7. master_host:192.168.2.1
  8. master_port:7001
  9. master_link_status:up
  10. master_last_io_seconds_ago:0
  11. master_sync_in_progress:0
  12. slave_read_repl_offset:8680
  13. slave_repl_offset:8680
  14. slave_priority:100
  15. slave_read_only:1
  16. replica_announced:1
  17. connected_slaves:0
  18. master_failover_state:no-failover
  19. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  20. master_replid2:0000000000000000000000000000000000000000
  21. master_repl_offset:8680
  22. second_repl_offset:-1
  23. repl_backlog_active:1
  24. repl_backlog_size:1048576
  25. repl_backlog_first_byte_offset:15
  26. repl_backlog_histlen:8666
复制代码
5.4 验证主从设置是否生效

  1. # "192.168.2.1:7001"实例主库的11号数据库创建测试数据
  2. redis-cli -h 192.168.2.1 -p 7001 -a 你的密码 -n 11
  3. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7001 -a 你的密码 -n 11
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. 192.168.2.1:7001[11]> keys *
  6. (empty array)
  7. 192.168.2.1:7001[11]> set name xiaoxiao
  8. OK
  9. 192.168.2.1:7001[11]> set age 18
  10. OK
  11. 192.168.2.1:7001[11]> keys *
  12. 1) "age"
  13. 2) "name"
  14. # "192.168.2.1:7002"实例从库的11号数据库查看是否同步主库的11号数据库
  15. redis-cli -h 192.168.2.1 -p 7002 -a 你的密码 -n 11
  16. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7002 -a 你的密码 -n 11
  17. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  18. 192.168.2.1:7002[11]> keys *
  19. 1) "name"
  20. 2) "age"
  21. 192.168.2.1:7002[11]> get name
  22. "zhangsan"
  23. 192.168.2.1:7002[11]> get age
  24. "18"
  25. 192.168.2.1:7002[11]>
  26. # "192.168.2.1:7003"实例从库的11号数据库查看是否同步主库的11号数据库
  27. redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 -n 11
  28. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 -n 11
  29. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  30. 192.168.2.1:7003[11]> keys *
  31. 1) "age"
  32. 2) "name"
  33. 192.168.2.1:7003[11]> get name
  34. "zhangsan"
  35. 192.168.2.1:7003[11]> get age
  36. "18"
  37. 192.168.2.1:7003[11]>
复制代码
6、 排除 192.168.2.1:7003 实例主从

  1. # 192.168.2.1:7003 查看主从信息
  2. redis-cli -h 192.168.2.1 -p 7003 -a 你的密码  info replication
  3. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7003 -a 你的密码  info replication
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. # Replication
  6. role:slave
  7. master_host:192.168.2.1
  8. master_port:7001
  9. master_link_status:up
  10. master_last_io_seconds_ago:4
  11. master_sync_in_progress:0
  12. slave_read_repl_offset:10003
  13. slave_repl_offset:10003
  14. slave_priority:100
  15. slave_read_only:1
  16. replica_announced:1
  17. connected_slaves:0
  18. master_failover_state:no-failover
  19. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  20. master_replid2:0000000000000000000000000000000000000000
  21. master_repl_offset:10003
  22. second_repl_offset:-1
  23. repl_backlog_active:1
  24. repl_backlog_size:1048576
  25. repl_backlog_first_byte_offset:155
  26. repl_backlog_histlen:9849
  27. #  192.168.2.1:7001 查看主从信息
  28. redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  29. [root@master-slave ~]#  redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  30. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  31. # Replication
  32. role:master
  33. connected_slaves:2
  34. slave0:ip=192.168.2.1,port=7002,state=online,offset=10157,lag=0
  35. slave1:ip=192.168.2.1,port=7003,state=online,offset=10157,lag=0
  36. master_failover_state:no-failover
  37. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  38. master_replid2:0000000000000000000000000000000000000000
  39. master_repl_offset:10157
  40. second_repl_offset:-1
  41. repl_backlog_active:1
  42. repl_backlog_size:1048576
  43. repl_backlog_first_byte_offset:1
  44. repl_backlog_histlen:10157
  45. # 解除 192.168.2.1:7003 主从信息
  46. redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 slaveof no one
  47. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 slaveof no one
  48. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  49. OK
  50. # 再次查看 192.168.2.1:7001 查看主从信息
  51. redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  52. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  53. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  54. # Replication
  55. role:master
  56. connected_slaves:1
  57. slave0:ip=192.168.2.1,port=7002,state=online,offset=10731,lag=0
  58. master_failover_state:no-failover
  59. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  60. master_replid2:0000000000000000000000000000000000000000
  61. master_repl_offset:10731
  62. second_repl_offset:-1
  63. repl_backlog_active:1
  64. repl_backlog_size:1048576
  65. repl_backlog_first_byte_offset:1
  66. repl_backlog_histlen:10731
  67. # 只剩下一个 从节点了
  68. # 把192.168.2.1:7003 添加回来
  69. redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 slaveof 192.168.2.1 7001
  70. [root@master-slave ~]#  redis-cli -h 192.168.2.1 -p 7003 -a 你的密码 slaveof 192.168.2.1 7001
  71. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  72. OK
  73. # 此时再看192.168.2.1:7001 查看主从信息
  74. redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  75. [root@master-slave ~]# redis-cli -h 192.168.2.1 -p 7001 -a 你的密码  info replication
  76. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  77. # Replication
  78. role:master
  79. connected_slaves:2
  80. slave0:ip=192.168.2.1,port=7002,state=online,offset=10941,lag=0
  81. slave1:ip=192.168.2.1,port=7003,state=online,offset=10941,lag=0
  82. master_failover_state:no-failover
  83. master_replid:a292603e2c96a6f451055e6d84a60795f81f2928
  84. master_replid2:0000000000000000000000000000000000000000
  85. master_repl_offset:10941
  86. second_repl_offset:-1
  87. repl_backlog_active:1
  88. repl_backlog_size:1048576
  89. repl_backlog_first_byte_offset:1
  90. repl_backlog_histlen:10941
  91. # slaves 变成2了
复制代码
二、 跨节点部署Redis主从

1. 情况介绍

操纵系统Centos 7Centos 7Centos 7内核版本3.10.0-957.21.3.el7.x86_643.10.0-957.21.3.el7.x86_643.10.0-957.21.3.el7.x86_64IP地址master: 16370 slave1: 16371 slave2: 16372master: 16370 slave1: 16371 slave2: 16372master: 16370 slave1: 16371 slave2: 16372Redis7.2.57.2.57.2.5 2. 修改设置文件

2.1 master

  1. # 创建redis数据存储目录
  2. mkdir -p /usr/local/redis/data/16380
  3. # 创建redis配置文件存储目录
  4. mkdir -p /usr/local/redis/conf/16380
  5. # 创建redis日志存储目录
  6. mkdir -p /usr/local/redis/log/16380
  7. # 创建redis pid存储目录
  8. mkdir /usr/local/redis/run
  9. # 复制下面命令即可
  10. cat > /usr/local/redis/conf/redis_16380.conf<<EOF
  11. # 开启保护模式
  12. protected-mode yes
  13. # 添加本机的ip
  14. bind 192.168.1.100   
  15. # 端口  
  16. port 16380
  17. # pid存储目录
  18. pidfile /usr/local/redis/run/redis_16380.pid   
  19. # 日志存储目录
  20. logfile /usr/local/redis/log/redis_16380.log
  21. # 数据存储目录,目录要提前创建好
  22. dir /usr/local/redis/data/16380
  23. # 设置实例的验证口令
  24. requirepass 你的密码
  25. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  26. # 此配置项中值需要和master机器的“requirepass”保持一致
  27. masterauth 你的密码
  28. # 配置RDB持久化策略
  29. save 900 1
  30. save 300 10
  31. save 60 10000
  32. # 配置AOF持久化
  33. appendonly yes
  34. appendfsync everysec
  35. # 守护进程
  36. daemonize yes
  37. EOF
复制代码
2.2 slave 1

  1. # 创建redis数据存储目录
  2. mkdir -p /usr/local/redis/data/16381
  3. # 创建redis配置文件存储目录
  4. mkdir -p /usr/local/redis/conf/16381
  5. # 创建redis日志存储目录
  6. mkdir -p /usr/local/redis/log/16381
  7. # 创建redis pid存储目录
  8. mkdir /usr/local/redis/run
  9. # 复制下面命令即可
  10. cat > /usr/local/redis/conf/redis_16381.conf <<EOF
  11. # 开启保护模式
  12. protected-mode yes
  13. # 添加本机的ip
  14. bind 192.168.1.200   
  15. # 端口  
  16. port 16381
  17. # pid存储目录
  18. pidfile /usr/local/redis/run/redis_16381.pid   
  19. # 日志存储目录
  20. logfile /usr/local/redis/log/redis_16381.log
  21. # 数据存储目录,目录要提前创建好
  22. dir /usr/local/redis/data/16381
  23. # 设置实例的验证口令
  24. requirepass 你的密码
  25. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  26. # 此配置项中值需要和master机器的“requirepass”保持一致
  27. masterauth 你的密码
  28. # 配置RDB持久化策略
  29. save 900 1
  30. save 300 10
  31. save 60 10000
  32. # 配置AOF持久化
  33. appendonly yes
  34. appendfsync everysec
  35. # 守护进程
  36. daemonize yes
  37. EOF
复制代码
2.3 slave 2

  1. # 创建redis数据存储目录
  2. mkdir -p /usr/local/redis/data/16382
  3. # 创建redis配置文件存储目录
  4. mkdir -p /usr/local/redis/conf/16382
  5. # 创建redis日志存储目录
  6. mkdir -p /usr/local/redis/log/16382
  7. # 创建redis pid存储目录
  8. mkdir /usr/local/redis/run
  9. # 复制下面命令即可
  10. cat > /usr/local/redis/conf/redis_16382.conf <<EOF
  11. # 开启保护模式
  12. protected-mode yes
  13. # 添加本机的ip
  14. bind 192.168.1.250   
  15. # 端口  
  16. port 16382
  17. # pid存储目录
  18. pidfile /usr/local/redis/run/redis_16382.pid   
  19. # 日志存储目录
  20. logfile /usr/local/redis/log/redis_16382.log
  21. # 数据存储目录,目录要提前创建好
  22. dir /usr/local/redis/data/16382
  23. # 设置实例的验证口令
  24. requirepass 你的密码
  25. # 以认证的方式连接到master。 如果master中使用了“密码保护”,slave必须交付正确的授权密码,才能连接成功。
  26. # 此配置项中值需要和master机器的“requirepass”保持一致
  27. masterauth 你的密码
  28. # 配置RDB持久化策略
  29. save 900 1
  30. save 300 10
  31. save 60 10000
  32. # 配置AOF持久化
  33. appendonly yes
  34. appendfsync everysec
  35. # 守护进程
  36. daemonize yes
  37. EOF
复制代码
3.启动Redis

3.1 master

  1. redis-server  /usr/local/redis/conf/redis_16380.conf
复制代码
3.2 slave 1

  1. redis-server  /usr/local/redis/conf/redis_16381.conf
复制代码
3.3 slave 2

  1. redis-server  /usr/local/redis/conf/redis_16382.conf
复制代码
4. 开启主从

4.1 slave 1

  1. # 从库开启主从
  2. redis-cli -h 192.168.1.200 -p 16381 -a 你的密码 slaveof 192.168.1.100 16380
  3. [root@slave1 ~]#  redis-cli -h 192.168.1.200 -p 16381 -a 你的密码 slaveof 192.168.1.100 16380
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. OK
  6. # 从库查看主从信息
  7. redis-cli -h 192.168.1.200 -p 16381 -a 你的密码  info replication
  8. [root@slave1 ~]# redis-cli -h 192.168.1.200 -p 16381 -a 你的密码  info replication
  9. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  10. # Replication
  11. role:slave
  12. master_host:192.168.1.100
  13. master_port:16380
  14. master_link_status:up
  15. master_last_io_seconds_ago:3
  16. master_sync_in_progress:0
  17. slave_read_repl_offset:532
  18. slave_repl_offset:532
  19. slave_priority:100
  20. slave_read_only:1
  21. replica_announced:1
  22. connected_slaves:0
  23. master_failover_state:no-failover
  24. master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d
  25. master_replid2:0000000000000000000000000000000000000000
  26. master_repl_offset:532
  27. second_repl_offset:-1
  28. repl_backlog_active:1
  29. repl_backlog_size:1048576
  30. repl_backlog_first_byte_offset:15
  31. repl_backlog_histlen:518
复制代码
4.2 slave 2

  1. # 从库开启主从
  2. redis-cli -h 192.168.1.250 -p 16382 -a 你的密码 slaveof 192.168.1.100 16380
  3. [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a 你的密码 slaveof 192.168.1.100 16380
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. OK
  6. # 从库查看主从信息
  7. redis-cli -h 192.168.1.250 -p 16382 -a 你的密码  info replication
  8. [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a 你的密码  info replication
  9. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  10. # Replication
  11. role:slave
  12. master_host:192.168.1.100
  13. master_port:16380
  14. master_link_status:up
  15. master_last_io_seconds_ago:10
  16. master_sync_in_progress:0
  17. slave_read_repl_offset:560
  18. slave_repl_offset:560
  19. slave_priority:100
  20. slave_read_only:1
  21. replica_announced:1
  22. connected_slaves:0
  23. master_failover_state:no-failover
  24. master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d
  25. master_replid2:0000000000000000000000000000000000000000
  26. master_repl_offset:560
  27. second_repl_offset:-1
  28. repl_backlog_active:1
  29. repl_backlog_size:1048576
  30. repl_backlog_first_byte_offset:211
  31. repl_backlog_histlen:350
复制代码
4.3 master

  1. # 查看 主从信息
  2. redis-cli -h 192.168.1.100 -p 16380 -a 你的密码  info replication
  3. [root@master ~]# redis-cli -h 192.168.1.100 -p 16380 -a 你的密码  info replication
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. # Replication
  6. role:master
  7. connected_slaves:2
  8. slave0:ip=192.168.1.200,port=16381,state=online,offset=336,lag=0
  9. slave1:ip=192.168.1.250,port=16382,state=online,offset=336,lag=1
  10. master_failover_state:no-failover
  11. master_replid:7330881025ee2709ee6c9c32ea3fcc9b6649893d
  12. master_replid2:0000000000000000000000000000000000000000
  13. master_repl_offset:336
  14. second_repl_offset:-1
  15. repl_backlog_active:1
  16. repl_backlog_size:1048576
  17. repl_backlog_first_byte_offset:1
  18. repl_backlog_histlen:336
复制代码
5. 验证主从设置是否生效

  1. # "master主机名"实例主库的11号数据库创建测试数据
  2. redis-cli -h 192.168.1.100 -p 16380 -a 你的密码 -n 11
  3. [root@master ~]# redis-cli -h 192.168.1.100 -p 16380 -a 你的密码 -n 11
  4. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  5. 192.168.1.100:16380[11]> keys *
  6. (empty array)
  7. 192.168.1.100:16380[11]> set name zhangsan
  8. OK
  9. 192.168.1.100:16380[11]> set age 18
  10. OK
  11. 192.168.1.100:16380[11]> keys *
  12. 1) "name"
  13. 2) "age"
  14. 192.168.1.100:16380[11]>
  15. # "slave1主机名"实例从库的11号数据库查看是否同步主库的11号数据库
  16. redis-cli -h 192.168.1.200 -p 16381 -a 你的密码 -n 11
  17. [root@slave1 ~]# redis-cli -h 192.168.1.200 -p 16381 -a 你的密码 -n 11
  18. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  19. 192.168.1.200:16381[11]> get name
  20. "zhagnsan"
  21. 192.168.1.200:16381[11]> get age
  22. "18"
  23. 192.168.1.200:16381[11]> key *
  24. (error) ERR unknown command 'key', with args beginning with: '*'
  25. 192.168.1.200:16381[11]> keys *
  26. 1) "age"
  27. 2) "name"
  28. 192.168.1.200:16381[11]>
  29. # "slave2主机名"实例从库的11号数据库查看是否同步主库的11号数据库
  30. redis-cli -h 192.168.1.250 -p 16382 -a 你的密码 -n 11
  31. [root@slave2 ~]# redis-cli -h 192.168.1.250 -p 16382 -a 你的密码 -n 11
  32. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
  33. 192.168.1.250:16382[11]> get name
  34. "zhangsan"
  35. 192.168.1.250:16382[11]> get age
  36. "18"
  37. 192.168.1.250:16382[11]> keys *
  38. 1) "age"
  39. 2) "name"
  40. 192.168.1.250:16382[11]>
  41. # 如果针对 slave1 或者 slave2 进行写入操作 则会报错 错误信息  只能在master操作哦
  42. (error) READONLY You can't write against a read only replica.
复制代码
竣事



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表