Redis主从复制

Redis主从复制

是什么

主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。

能干嘛

  • 读写分离,性能扩展

  • 容灾快速恢复

 

 

创建过程

  1. 创建/myredis文件夹

  2. 复制redis.conf配置文件到文件夹中

  3. 配置一主两从,创建三个配置文件

    redis6379.conf

    redis6380.conf

    redis6381.conf

  4. 在三个配置文件写入内容

    include /myredis/redis.conf pidfile /var/run/redis_6379.conf port 6379 dbfilename dump6379.rdb

  5. 启动三个redis服务

    查看当前主机运行状况 info replication

    在从机上执行 slaveof 主机ip 端口号 ,可以指定主机

 

 

 

 

以上步骤就创建了一主两从,主服务器用来写数据,从服务器用来读数据

 

主从复制的原理

  1. 当从服务器连接上主服务器之后,从服务器向主服务器发送数据同步消息。

  2. 主服务器接到从服务器发送过来的同步消息,把主服务器数据进行持久化为rdb文件,把rdb文件发送到从服务器中,从服务器拿到rdb文件进行读取。

  3. 每次主服务器进行写操作之后,就和从服务器进行数据同步。

 

一主二从

  • 当从服务器down之后,重新启动会变为主服务器。可以选择重新添加为从服务器,在这期间主服务器添加的数据,从服务器会全部添加进来。

  • 当主服务器down之后,从服务器还是存在,只是info replication显示主服务器已经down,主服务器重新启动后,这两台服务器仍然是主服务器的从服务器。

 

哨兵模式(sentinel)

是什么

反客为主的自动版,能够后台监控主机是否故障。如果故障了根据投票数自动将从库转换为主库。

 

使用步骤

  1. 设置哨兵,填写内容 sentinel monitor mymaster 127.0.0.1 6379 1

    其中,mymaster 为监控对象起的服务器名称,1为至少有多少个哨兵同意迁移的数量

  1. 执行redis-sentinel /myredis/sentinel.conf

 

 

  1. 当主机down掉,会在从机中选择新的主机,该如何选择呢?

    • 选择优先级靠前的 slave-priority 100 新版本的为 replica-priority 100 数字小的优先级高

    • 选择偏移量最大的 偏移量指获得主机数据最全的

    • 选择runnid最小的从服务器 runid 每个redis实例启动后都会随机生成一个40位的runid

 

缺点

由于所有的写操作都是先在Master上操作,然后同步更新到Salve上,所有Master同步到Slave机器上有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

posted @   阳光真好的博客  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示