返回顶部
首页 > 资讯 > 数据库 >Redis多实例及主从复制环境搭建
  • 198
分享到

Redis多实例及主从复制环境搭建

2024-04-02 19:04:59 198人浏览 独家记忆
摘要

一、Redis主从复制原理 和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的


一、Redis主从复制原理

Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构:

Redis多实例及主从复制环境搭建

 

1全量同步

Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下: 

1)从服务器连接主服务器,发送SYNC命令; 

2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 

3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令; 

4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照; 

5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令; 

6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

Redis多实例及主从复制环境搭建


 

完成上面几个步骤后就完成了从服务器数据初始化的所有操作,从服务器此时可以接收来自用户的读请求。

 

2增量同步

Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。 

增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。

备注:redis2.8之前不支持增量,到2.8之后就支持增量了!

 

3Redis主从同步策略

主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。

 

4注意事项

如果多个Slave断线了,需要重启的时候,因为只要Slave启动,就会发送sync请求和主机全量同步,当多个同时出现的时候,可能会导致Master io剧增宕机。

 

 

二、Redis单主机多实例部署


前提是之前已经安装了一个单实例的redis,redis单实例安装可参考:Centos 7.4安装redis 4.0详细步骤【Http://blog.itpub.net/31015730/viewspace-2155307/】

 

1、复制两份redis配置文件

[root@VM_2_13_centos ~]# cp /etc/redis/redis.conf /etc/redis/redis6311.conf  

[root@VM_2_13_centos ~]# cp /etc/redis/redis.conf /etc/redis/redis6322.conf   

[root@VM_2_13_centos ~]#

[root@VM_2_13_centos ~]# ll /etc/redis/

total 192

-rw-r--r-- 1 root root 58976 May 29 20:37 redis6311.conf

-rw-r--r-- 1 root root 58976 May 29 20:37 redis6322.conf

-rw-r--r-- 1 root root 58976 May 29 20:33 redis.conf

 

2、修改配置文件redis6311.conf和redis6322.conf

[root@VM_2_13_centos ~]# vim  /etc/redis/redis6311.conf

# 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 Socket 上监听任何客户端连接。

port 6311

# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。

daemonize yes

# 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面

# 但是你可以在这里自己制定它的文件位置。

pidfile /var/run/redis/redis_6311.pid

# 指定日志文件的位置,不同的实例设置不同的日志文件,便于问题定位

logfile /var/log/redis/redis_6311.log

# 设置dump的文件名称,不同的实例设置不同的db文件,便于问题定位

dbfilename dump_6311.rdb

# 工作目录 # 例如上面的 dbfilename 只指定了文件名,但是它会写入到这个目录下。 # 这个配置项一定是个目录,而不能是文件名。

# 这个配置项默认值为“./”,最好改相对路径为绝对路径

# 如果为相对路径,redis在哪里启动,dump.rdb文件就会产生在启动的目录,这也就是有些人重启redis后key值消失的原因

dir /var/lib/redis/6311

#配置密码

requirepass qcloud@2018

 

3、启动端口为6311的redis

[root@VM_2_13_centos ~]# redis-server /etc/redis/redis6311.conf

[root@VM_2_13_centos ~]#

[root@VM_2_13_centos ~]# ps -ef | grep redis                   

root      6938     1  0 21:14 ?        00:00:00 redis-server 127.0.0.1:6379

root      7001     1  0 21:15 ?        00:00:00 redis-server 127.0.0.1:6311

root      7009  1905  0 21:15 pts/1    00:00:00 grep --color=auto redis

 

4、客户端登录

[root@VM_2_13_centos ~]# redis-cli -p 6311

127.0.0.1:6311>

127.0.0.1:6311> keys *

(error) NOAUTH Authentication required.

127.0.0.1:6311>

127.0.0.1:6311> auth qcloud@2018

OK

127.0.0.1:6311> keys *

(empty list or set)

 

按照上面的方式配置6322端口的redis,并启动

[root@VM_2_13_centos ~]# redis-server /etc/redis/redis6322.conf  

[root@VM_2_13_centos ~]# ps -ef | grep redis

root      6938     1  0 21:14 ?        00:00:00 redis-server 127.0.0.1:6379

root      7001     1  0 21:15 ?        00:00:00 redis-server 127.0.0.1:6311

root      7264     1  0 21:20 ?        00:00:00 redis-server 127.0.0.1:6322

root      7279  1905  0 21:20 pts/1    00:00:00 grep --color=auto redis

 

 

三、redis主从环境搭建

 

1、修改6311和6322的配置文件,主redis为6379端口的redis

[root@VM_2_13_centos ~]# vim /etc/redis/redis6311.conf

slaveof localhost 6379

# masterauth <master-passWord>

masterauth qcloud@2018

注意:如果主实例配置了密码,那么从实例必须配置masterauth,否则同步不成功

 

2、查看配置是否成功

主库:

127.0.0.1:6379> info Replication

# Replication

role:master

connected_slaves:2

slave0:ip=127.0.0.1,port=6311,state=online,offset=179,lag=0

slave1:ip=127.0.0.1,port=6322,state=online,offset=179,lag=0

master_replid:d2450e24238b6612630368c6408fd4a9b098da16

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:179

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:179

 

从库:

127.0.0.1:6311> info Replication

# Replication

role:slave

master_host:localhost

master_port:6379

master_link_status:up

master_last_io_seconds_aGo:7

master_sync_in_progress:0

slave_repl_offset:277

slave_priority:100

slave_read_only:1

connected_slaves:0

master_replid:d2450e24238b6612630368c6408fd4a9b098da16

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:277

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:277

 

127.0.0.1:6322> info Replication

# Replication

role:slave

master_host:localhost

master_port:6379

master_link_status:up

master_last_io_seconds_ago:1

master_sync_in_progress:0

slave_repl_offset:319

slave_priority:100

slave_read_only:1

connected_slaves:0

master_replid:d2450e24238b6612630368c6408fd4a9b098da16

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:319

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:319

 

 

3、主从同步测试

主库:

127.0.0.1:6379> keys *

1) "name"

127.0.0.1:6379>

127.0.0.1:6379> set age 22

OK

 

从库:

[root@VM_2_13_centos ~]# redis-cli -p 6311

127.0.0.1:6311> auth qcloud@2018

OK

127.0.0.1:6311> keys *

1) "name"

127.0.0.1:6311> get age

"22"

 

[root@VM_2_13_centos ~]# redis-cli -p 6322

127.0.0.1:6322> auth qcloud@2018

OK

127.0.0.1:6322> keys *

1) "name"

127.0.0.1:6322> get age

"22"


到此为止,redis的主从复制环境搭建完成!


作者:SEian.G(苦练七十二变,笑对八十一难)


您可能感兴趣的文档:

--结束END--

本文标题: Redis多实例及主从复制环境搭建

本文链接: https://lsjlt.com/news/48662.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis多实例及主从复制环境搭建
    一、redis主从复制原理 和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的...
    99+
    2024-04-02
  • mysql主从复制环境搭建
    mysql 主从第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从主my.cnf文件 (192.168.1.64)mysqld模块加入log-bin=mysql-bin 启动二进...
    99+
    2024-04-02
  • Redis及Ubuntu14下怎么搭建SSDB主从环境
    这篇文章主要讲解了“Redis及Ubuntu14下怎么搭建SSDB主从环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis及Ubuntu14下怎么搭建SSDB主从环境”吧!在工作中接...
    99+
    2023-06-16
  • windows版的mysql主从复制环境搭建
    背景 最近在学习用Spring Aop来实现数据库读写分离的功能。 在编写代码之前,首先是要部署好mysql的环境,因为要实现读写分离,所以至少需要部署两个mysql实例,一主一从,并且主从实例之间能够自动同步,因为我的本机内存并不高,所以...
    99+
    2021-12-22
    windows版的mysql主从复制环境搭建
  • docker创建MySQL镜像,搭建主从复制环境
    docker创建MySQL镜像,搭建主从复制环境 前言一、编写Dockerfile制作mysql镜像编写Dockerfile文件编写mysql_file文件:编写run.sh文件build M...
    99+
    2023-09-28
    centos linux docker
  • 如何进行mysql5.7.15 主从复制环境搭建
    本篇文章为大家展示了如何进行mysql5.7.15 主从复制环境搭建,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 ...
    99+
    2024-04-02
  • mysql真实环境搭建主从
                     &...
    99+
    2024-04-02
  • MYSQL主从环境搭建
    服务器:192.168.11.131 master192.168.11.132 slave服务器系统# cat /etc/redhat-release CentOS Linux release 7...
    99+
    2024-04-02
  • redis主从复制的搭建步骤
    这篇文章将为大家详细讲解有关redis主从复制的搭建步骤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主从复制的原理在Redis集群中,让若干个Redis服务器去复制另一...
    99+
    2024-04-02
  • 新环境搭建Mysql主从
    环境信息: 用途 IP OS Mysql 主 ...
    99+
    2024-04-02
  • MySQL 主从复制原理及搭建
    一.主从复制的工作过程:二.MySQL复制类型基于SQL语句的复制基于行的复制混合复制三.实验环境  OS:CentOS 6.5 x64  master:192.168.0.134&nb...
    99+
    2024-04-02
  • Redis-3.2主从复制与集群搭建
    一、Redis 主从搭建1.下载并解压yum install -y gcc gcc-c++ pcre zlib pcre-devel&n...
    99+
    2024-04-02
  • Mysql主从复制搭建
    1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlo...
    99+
    2020-09-28
    Mysql主从复制搭建
  • 浅谈Redis主从复制以及主从复制原理
    目录面临问题解决办法主从复制主从复制的作用主从复制启用面临问题 1. 机器故障。我们部署到一台 Redis 服务器,当发生机器故障时,需要迁移到另外一台服务器并且要保证数据是同步的。...
    99+
    2024-04-02
  • MySQL5.7主从复制-GTID复制搭建
     两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP为1...
    99+
    2024-04-02
  • 基于docker环境下如何搭建redis主从集群
    基于docker环境下如何搭建redis主从集群,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1   前言笔者给大家介绍基于docker环境下搭建Red...
    99+
    2023-06-04
  • centos7 maiadb主从复制搭建
    需求:由于要使用saltstack,部署环境,先手动搭建了下主从环境,发现原来的word资料都找不到了,所以这次赶紧的记录到博客当中!!环境:两台设备,ip地址分别为:node1:192.168.56.11...
    99+
    2024-04-02
  • MongoDB 主从复制集搭建
    一、Mongodb复制集简介什么是复制集?复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。...
    99+
    2024-04-02
  • 逻辑复制主从搭建
    创建复制用户: CREATE USER 'repl'@'192.168.6.%' IDENTIFIED BY '123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@...
    99+
    2024-04-02
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作