声明一:我把/opt/myRedis作为我redis的启动目录,且已经安装好了redis,且把redis的配置文件redis.conf复制到了/opt/myRedis,把本目录作为我redis的启动目录。
声明二:由于我之前配置过了redis集群,因此本次演示我会使用端口号5379,5380,5381这三个端口号来进行演示
1,为每个redis服务,分配其自己的配置文件(就是先想好多个redis服务的配置文件怎样命名才能见名知意)。
因为要创建多个redis服务,那么就需要为各个端口启动的redis配置其独有的配置文件,我以redis+端口号+后缀(.conf)为每个redis服务配置属于其自己的配置文件
2,配置文件中所需要配置的内容(我们只需要配置标红的选项)
- 拷贝多个redis.conf文件include•拷贝多个redis.conf文件include
- 开启daemonize yes(引入的redis.conf默认已经配置好了我们不需要管)
- Pid文件名字pidfile(让每个redis服务的pid文件不一样)
- 指定端口port(为每个redis服务分配端口号)
- Log文件名字(不用管)
- Dump.rdb名字dbfilename(指定每个redis服务的持久化文件的名字)
- Appendonly 关掉或者换名字(默认关掉)
注意:2,5,7有默认配置,我们不需要管
因为我们已经安装了redis,因此我们在配置多个redis集群服务时,只需要引入原来的redis.conf,然后再在后面追加如下三行内容即可(虽然我们在redis.conf中也有这三行配置,但是配置文件从上往下加载,我们后来的配置的会把之前配置的覆盖掉)
include /opt/myRedis/redis.conf
pidfile /var/run/redis_5379.pid
port 5379
dbfilename dump5379.rdb
上面就完成了一个redis服务的配置。因为一主二从,因此还要配置两个(端口号不同就行了),我们复制上面配置好的redis.5379.conf--->redis.5380.conf, redis5381.conf,
![]()
并修改该对应配置文件的端口号(因为你复制过来的端口号为5379)

到此,三个redis服务的配置文件我们就已经配置好了
3,启动redis服务
启动redis服务:
redis-server /opt/myRedis/redis5379.conf(刚刚配置的配置文件的位置)
![]()
客户端连接服务器,并指定端口号(三个redis服务,最好开三个命令行窗口,每个窗口运行一个redis客户端):
redis-cli -p 5379(指定端口号)
![]()
查看是否启动成功:

按照此种方式依次启动这三个redis服务。
4,配置主从关系
先使用命令查看当前redis服务信息,会发现默认每个服务都是一个主节点(master)

然后使用 slaveof <ip> <port> 把当前redis服务设置为指定实例的从服务器,并使用info replication进行验证

可以发现5381端口中属性:role:slave即从master变成了slave
我们在检查主节点5379的属性:

我们会发现5379不单是master节点,还有两个从节点,从节点的端口号分别是5380,5381
如果不想把某台服务器设置为从服务器可以使用如下命令解绑:
slaveof no one会重新把本机设置为主节点(不属于任何一个别的节点)

而且原来的主节点5379也会发现少了一个从服务器
至此,主从服务配置完成(但是命令行中的主从复制关系只是暂时的,服务重启后主从关系就会消失,如果想进行永久性的主从复制关系,那么需要在每个从服务器的配置文件中修改slaveof ip port)
薪火相传模式
声明:该模式也是基于上面配置好的三台redis服务。即:我们不再把两个从服务器5380,5381指向5379了,而是5381指向5380,即5381是5380的从服务器,5380是5381的主服务器
![]()
把5380指向5379.,而5380同时也是5379的从服务器

至此薪火相传模式配置好了。但是这种情况虽然减轻了主节点5379的压力。但是如果5380挂掉的话5379并不知道还有5381.因此并不会把数据复制给5381.这种模式的缺陷就是中间节点不能挂掉。
如果主节点5379挂掉的话,5380可以代替5379称为读写主节点。但是需要我们手动输入命令 slaveof no one 将从机变为主机。

273

被折叠的 条评论
为什么被折叠?



