集群配置

  1. 单机多服务集群方式,复制多份配置文件,修改对应信息
    • 端口
    • pid 名字
    • log 文件名字
    • dump.rdb 名字
  2. redis-server conf-path 启动服务
  3. ps -rf/aux | grep "redis" 查看服务器是否启动进程

    1. redis 9919 1 0 Nov12 ? 00:00:00 /usr/lib/systemd/systemd --user
    2. redis 9923 9919 0 Nov12 ? 00:00:00 (sd-pam)
    3. redis 9931 1 0 Nov12 ? 00:02:02 /www/server/redis/src/redis-server 0.0.0.0:6379
    4. root 17342 1 0 17:41 ? 00:00:00 redis-server 0.0.0.0:6380
    5. root 17352 1 0 17:41 ? 00:00:00 redis-server 0.0.0.0:6381
    6. root 17361 1 0 17:41 ? 00:00:00 redis-server 0.0.0.0:6382
    7. root 17371 16890 0 17:41 pts/2 00:00:00 grep --color=auto redis
  4. info replication 查看集群信息(redis默认为master)

  5. 配置一主机两从机

连接集群,在要配置为从机的命令行内输入SLAVEOF host port指定主机

  1. # 从机视角信息
  2. info replication
  3. # Replication
  4. role:slave
  5. master_host:0.0.0.0
  6. master_port:6379
  7. master_link_status:up
  8. master_last_io_seconds_ago:7
  9. master_sync_in_progress:0
  10. slave_repl_offset:98
  11. slave_priority:100
  12. slave_read_only:1
  13. connected_slaves:0
  14. master_replid:d0c23b2314d314d1547af95b24e502a7ac7f87c8
  15. master_replid2:0000000000000000000000000000000000000000
  16. master_repl_offset:98
  17. second_repl_offset:-1
  18. repl_backlog_active:1
  19. repl_backlog_size:1048576
  20. repl_backlog_first_byte_offset:29
  21. repl_backlog_histlen:70
  22. # 主机视角信息
  23. info replication
  24. # Replication
  25. role:master
  26. connected_slaves:3
  27. slave0:ip=127.0.0.1,port=6380,state=online,offset=266,lag=1
  28. slave1:ip=127.0.0.1,port=6381,state=online,offset=266,lag=1
  29. slave2:ip=127.0.0.1,port=6382,state=online,offset=266,lag=1
  30. master_replid:d0c23b2314d314d1547af95b24e502a7ac7f87c8
  31. master_replid2:0000000000000000000000000000000000000000
  32. master_repl_offset:280
  33. second_repl_offset:-1
  34. repl_backlog_active:1
  35. repl_backlog_size:1048576
  36. repl_backlog_first_byte_offset:1
  37. repl_backlog_histlen:280

conf文件配置

由于上面属于临时配置,永久配置需要设置conf里面的replication,这样配置后一起的默认就是从机了

  1. # replicaof <masterip> <masterport>
  2. # If the master is password protected (using the "requirepass" configuration
  3. # directive below) it is possible to tell the replica to authenticate before
  4. # starting the replication synchronization process, otherwise the master will
  5. # refuse the replica request.
  6. #
  7. # masterauth <master-password>

复制原理

  1. Slave 启动成功连接到master 后会发送一个sync同步命令Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。<br /> 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。<br /> 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

宕机后手动配置

如果主机宕机后,要让从机变成主机使用SLAVEF no one命令即可
但是宕机后的主机在重启,之前连接到他的从机就不属于他了

哨兵模式(自动选主机)