读写分离的好处

  • 性能优化
    • 主服务器专注写操作,适合写入数据的模式工作
    • 从服务器专注读操作,适合读取数据的模式工作
  • 强化数据安全,避免单点故障
    • 由于数据同步机制的存在,各个服务器的db的数据保持一致。
    • 主从复制的 redis 服务器构成了一个 集群

搭建步骤

思路

  • 集群在运行的时候使用同一个可执行文件(redis-server, 只是对应的配置文件不同

操作

  • 根据需要配置好各个 redis.conf 后,分别使用各个 conf 启动 redis 服务器

    port # 监听端口 dbfilename # 持续化存储位置 logfile # 日志文件位置 pidfile # pid文件位置

  • 默认各个服务器启动后都认为自己是 master

主从关系

  • 在从机上指定主机位置即可

    SLAVEOF master_IP master_PORT

  • 从机取消主从关系

    SLAVEOF NO ONE

可以在cli 使用 info 查看主从状态等信息

哨兵

  • 主观下线
    • 1台哨兵检测到某个节点服务器下线
  • 客观下线
    • 认为某个节点服务器下线的哨兵服务器达到指定数量
    • 该数量后面在哨兵的启动配置文件中指定。

配置方式

  1. 创建配置文件

    vim sentinel.conf

  2. 填写配置

    sentinel monitor style_master_server_name master_server_ip master_server_port sentinel_confirm_num sentinel monitor 为主机取的名字 主机ip 主机端口号 将主机判定为下线时需要sentinel同意的数量

  • 默认是有一个 sentinel.conf ,后期可以使用该 conf 进行修改

    启动哨兵

    redis-server ./sentinel.conf —sentinel

  • 打印信息会显示 Running in sentinel mode
    • 哨兵本身也是一个 server

状态解释

image.png