这篇文章主要讲解了“Redis搭建主从同步和读写分离实际操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis搭建主从同步和读写分离实际操作”吧!
Redis分布式基础主从同步
前面我们介绍了主从同步基础,今天我们动手来搭建一个Redis的主从服务器,然后到读写分离。
首先我们准备一下材料,Redis5.0Windows版本和Redis的管理工具,如果在网上找不到的同学可以关注下面的公众号然后回复:redis5.0
注意:我们的操作和展示都是在Windows操作系统下进行的,想在Linux操作系统下玩的同学不要慌,虽然有些许的不同,但是思路和配置都是一样的。
我们把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
>set name mango
接着我们把从服务器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搭建主从同步和读写分离实际操作这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。