Redis搭建主从同步和读写分离实际操作

发布时间:2021-08-30 18:43:44 作者:chen
来源:亿速云 阅读:118

这篇文章主要讲解了“Redis搭建主从同步和读写分离实际操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis搭建主从同步和读写分离实际操作”吧!

Redis分布式基础主从同步

前面我们介绍了主从同步基础,今天我们动手来搭建一个Redis的主从服务器,然后到读写分离。

首先我们准备一下材料,Redis5.0Windows版本和Redis的管理工具,如果在网上找不到的同学可以关注下面的公众号然后回复:redis5.0

注意:我们的操作和展示都是在Windows操作系统下进行的,想在Linux操作系统下玩的同学不要慌,虽然有些许的不同,但是思路和配置都是一样的。

配置服务器IP和端口  

Redis搭建主从同步和读写分离实际操作

我们把Redis复制到这三个文件夹下,不多解释看名字就能知道我是要做一主多从的结构。

我们进到这个文件夹里面找到【redis.windows.conf】这个文件,建议通过notepad打开,这里我们修改主服务器的ip和端口号

#修改ipbind 192.168.1.219#修改端口port 6000

保存后后我们运行这个【redis-server.exe】,启动服务后发现端口号木有变,这里我教大家一招,直接选中【redis.windows.conf】然后拖到【redis-server.exe】上,这时运行的redis服务端口就变成了6000。

按照此步骤我们把从服务器A的端口号配置成7001,从服务器B的端口配置成7002

然后在RedisManage工具上登录这两个服务器,此时我们做完了基本的准备工作,下面我们正式进入。

配置主从同步

从服务器A配置同步服务器信息,此配置项为:slaveof [主ip] [主端口]

slaveof 192.168.1.219 6000
配置好了后我们重启从服务器A,然后在主服务器中添加一个key
>set name mango
然后检测主从是否完成同步

Redis搭建主从同步和读写分离实际操作

添加子节点

接着我们把从服务器B也配置slaveof启动,此处在原理篇讲过,添加子节点,主服务器会启动子线程保存一个快照,通过socket同步共享到子节点。

读写分离

我们先想一个问题,前面在主服务器添加一个name,然后很快就同步到其他的从服务器,那么如果我在从服务器写一个新的key是不是也得同步到其他服务器上?这样会导致几个问题,如果从服务器写一个key还没来得及同步到其他服务器就挂掉了,重启后我们发现从服务器和主服务器上的key不同;又比如每台服务器都可以写,那么我们的服务器非常混乱,不是在同步的过程中就是在同步的路上,这样加重了服务器的压力IO读写的性能消耗

为了降低这样的复杂性问题,在设计的时候我们只允许一个服务器做一件事情,也就是主服务器负责写数据,从服务器负责提供读数据,所以读写分离就出来了。

#从服务器配置只读slave-read-only yes

配置完后我们来写一个key试试

>set name li"READONLY You can't write against a read only replica."

配置日志文件

如果Redis异常了我们如何排查问题呢?对了,这里我们需要配置上日志文件,异常信息一个都不落下

#日志级别loglevel notice#日志文件logfile "redis.log"
配置增量同步

如果我们的从服务器掉线重启,从服务器会和主服务器对比数据,如果没有写key,那么就不会执行同步,反之会同步整个缓存快照,数据量如果非常大,那么同步快照简直就是地狱,所以Redis提供一个复制缓冲区。

这个结构是一个环状结构,用来保存最新复制的命令。这样在从服务器离线的时候,不需要完全复制主服务器的数据,如果可以执行部分同步,只需要把缓冲区的部分数据复制给从服务器,就能恢复正常复制状态。缓冲区的大小越大,从服务器离线的时间可以更长,复制缓冲区只有在有slave连接的时候才分配内存。没有从服务器的一段时间,内存会被释放出来,默认1m

repl-backlog-size 1mb

配置本地压缩

随着运行时间越来越长,Redis的本地磁盘上的数据库越来越大,所以我们可以对数据库进行压缩数据,Redis采用LZF压缩方式,但占用了一点CPU的时间。

rdbcompression yes

到这里差不多把主从同步和读写分离的系统搭建完成了,还有一些细节性的配置需要小伙伴们自行尝试了,整个配置环节时间不是很长,但是里面的原理还得需要搞清楚,主从主要是防止单机Redis挂掉了,数据请求直接到数据库,导致服务器不可用。

感谢各位的阅读,以上就是“Redis搭建主从同步和读写分离实际操作”的内容了,经过本文的学习后,相信大家对Redis搭建主从同步和读写分离实际操作这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. mysql主从同步读写分离
  2. 快速搭建MySQL主从同步

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis

上一篇:python中元类的作用是什么

下一篇:linux bunzip2命令的用法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》