Redis群集部署详解


博文大纲:
一、Redis群集相关概念
二、部署Redis群集Redis是从3.0版本开始支持cluter的,采用的是hash槽方式,可以将多个Redis实例整合在一起,形成一个群集,也就是将数据分散存储到群集中的多个节点上。Redis的cluster是一个无中心的结构,在群集中,每个master的身份是平等的,每个节点都保存数据和整个群集的状态,并且知道其他节点所负责的槽,也会定时发送心跳信息,能够及时感知群集中异常的节点,并且采取投票的方式来决定该节点是否为不可用,若票数为群集中节点的半数以上,则认为该节点不可用,也正是因为此特点,所以要部署Redis群集,节点数量最少要三个及以上。群集角色有master和slave,master之间分配slots(槽),槽点编号是0-16383(共16384个)。默认情况下,每个群集节点有两个TCP端口在监听,一个是6379(用于监听客户端的访问连接),另一个是16379(用于群集之间的节点通信)。注意,防火墙需要放行这两个端口的流量。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 Redis提供的这两种方式进行持久化,一种是RDB持久化(原理是将Redis在内存中的数据库定时记录dump到磁盘上的RDB持久化),另一种是AOF(append only file)持久化(原理是将Redis的操作日志以追加的方式写入文件)RDB的优点与缺点RDB半持久化的优点:AOF的优点与缺点AOF全持久化的优点:如果RDB和AOF同时存在,则优先选择AOF方式。上面共六台centos服务器,实现三台master分别对应一台slave(也可以在一台服务器上配置多个Redis实例,但不要master-slave在同一台物理服务器,可以使用交叉master-slave的方式进行主从复制,所谓交叉就是master在node01,但对应的slave在node02,node02上mast免费云主机域名er对应的slave在node03,而node03对应的slave在node01,这样做的好处是避免因为物理服务器的宕机而造成整个群集崩溃,这里只是稍微提示以下,自行研究即可)。这里为了展示同一台主机上配置多个Redis实例,所以将在node06上配置多个Redis实例,其余节点各负责一个Redis实例即可。在进行接下来的配置前,请先下载我提供的源码包(其实,这里部署的版本是Redis4.0的,版本还低了些,有些方便的配置无法进行,可以参考下我那篇部署Redis 5.0的博文)。这里以node01的配置进行示例,其他节点照搬进行配置即可。在其他节点服务器上将上述配置依次进行以便,主机node06除外,因为稍后将在node06上展示单台主机多Redis实例的配置。
node06这个节点上,我将配置其运行多个Redis数据库实例,所以与前面五个节点的配置并不是完全一样,请谨慎配置。上述查看Redis端口监听情况的返回信息如下:配置至此,可再次查看群集的节点信息,会发现主从之间都对应上了,如下:至此,群集即可正常读写数据了,如下:上述命令返回的信息如下:
返回的提示信息如下则表示成功:由于一个群集若要正常运行,必须将所有的槽点分配出去,所以当有新的节点加入后,需要重新给新加入的节点分配槽点,如下:至此,新的节点就添加完成了,并且分配了相应的槽点,但是…还没有从节点,所以接下来为新加入的master分配一个从节点。分配从节点的方式有两种,一种是不指定为哪个master的从节点,自动绑定到没有从节点的master上,一种是直接指定绑定到哪个master上,这里将这两种方式都写下来。删除主节点的操作其实就是把添加主节点的操作反了过了,需要先将要删除的主节点上的槽点分配给其他master,然后才可以执行删除操作,并且删除主节点后,该master对应的slave也将会随着slots槽进行转移到新的master上。这里以移除node06上的6380实例为例。至此,6380实例就被彻底移除群集了,并且原本与之对应的slave也随着槽点转移到node02也一起成为了node02的slave。现在查看群集信息,node02的master应该是对应了三个slave。———————— 本文至此结束,感谢阅读 ————————

相关推荐: Oracle RAC实施方案详细说明-安装后的检查06

Oracle RAC 实施方案详细说明 – 安装后的检查 06 查看数据库版本 SQL> select * from v$version; 查看集群名称 [root@rac01 bin]# ./cemutlo –help [root@rac01 bin…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 12/30 17:34
下一篇 12/30 17:34