首页 > 数据库 >Mac上安装主从模式&哨兵模式Redis(5.0.9)

Mac上安装主从模式&哨兵模式Redis(5.0.9)

时间:2024-03-09 17:34:18浏览次数:25  
标签:5.0 Redis redis 模式 master usr sentinel local

1、服务节点说明
Master节点ip和端口为:127.0.0.1:6380

Slave节点ip和端口为:127.0.0.1:6381;127.0.0.1:6382

哨兵节点说明:127.0.0.1:26380;127.0.0.1:26381;127.0.0.1:26382

Redis哨兵集群拓扑图.png

2、配置主从模式
2.1、redis修改配置
2.1.1、Master的redis.conf

设置哪些IP可以连接redis-server,4个0表示全部[!!危险!!]

bind 127.0.0.1
port 6380

设置redis启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9/logs/redis_6380.pid

日志级别

loglevel notice

日志文件路径

logfile /usr/local/redis-5.0.9/logs/redis_6380.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9/data/

本地客户端登录密码

requirepass 000000

主节点登陆密码

masterauth 000000

同时连接Redis服务的最大客户端数量(默认10000)

maxclients 10000

设置为后台启动

protected-mode no
2.1.2、Slave的redis.conf

Slave1的redis.conf

设置哪些IP可以连接redis-server,4个0表示全部[!!危险!!]

bind 127.0.0.1
port 6381

设置redis启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9-slave1/logs/redis_6381.pid

日志级别

loglevel notice

日志文件路径

logfile /usr/local/redis-5.0.9-slave1/logs/redis_6381.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9-slave1/data/

本地客户端登录密码

requirepass 000000

主节点登陆密码

masterauth 000000

同时连接Redis服务的最大客户端数量(默认10000)

maxclients 10000

配置主从关系,只配置从节点!!!

slaveof 127.0.0.1 6380

设置为后台启动

protected-mode no
Slave2的redis.conf

设置哪些IP可以连接redis-server,4个0表示全部[!!危险!!]

bind 127.0.0.1
port 6382

设置redis启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9-slave2/logs/redis_6382.pid

日志级别

loglevel notice

日志文件路径

logfile /usr/local/redis-5.0.9-slave2/logs/redis_6382.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9-slave2/data/

本地客户端登录密码

requirepass 000000

主节点登陆密码

masterauth 000000

同时连接Redis服务的最大客户端数量(默认10000)

maxclients 10000

配置主从关系,只配置从节点!!!

slaveof 127.0.0.1 6380

设置为后台启动

protected-mode no
2.2、启动主从模式Redis

启动redis

/usr/local/redis-5.0.9/bin/redis-server /usr/local/redis-5.0.9/etc/redis.conf
/usr/local/redis-5.0.9-slave1/bin/redis-server /usr/local/redis-5.0.9-slave1/etc/redis.conf
/usr/local/redis-5.0.9-slave2/bin/redis-server /usr/local/redis-5.0.9-slave2/etc/redis.conf
2.3、验证
2.3.1、查看进程

查看是否3个redis进程

ps -ef|grep redis|grep -v grep
2.3.2、登录查看

Master节点登录查看

redis-cli登录redis服务查看

/usr/local/redis-5.0.9/bin/redis-cli -p 6380 -a 000000

查看主从状态

info replication

主从模式中的主节点信息.jpg
Slave1节点登录查看

redis-cli登录redis服务查看

/usr/local/redis-5.0.9-slave1/bin/redis-cli -p 6381 -a 000000

查看主从状态

info replication

主从模式中slave1信息.jpg

Slave2节点登录查看

redis-cli登录redis服务查看

/usr/local/redis-5.0.9-slave2/bin/redis-cli -p 6382 -a 000000

查看主从状态

info replication

主从模式中slave2信息.jpg

2.4、测试
2.4.1、Master设置

127.0.0.1:6380> set key 1
OK
2.4.2、Slave查看

127.0.0.1:6381> get key
"1"

127.0.0.1:6382> get key
"1"
127.0.0.1:6382> set key2 2
(error) READONLY You can't write against a read only replica
3、配置哨兵模式
3.1、Master上的sentinel.conf

sentinel 使用的端口

port 26380

设置sentinel启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9/logs/redis-sentinel_26380.pid

日志文件路径

logfile /usr/local/redis-5.0.9/logs/redis-sentinel_26380.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9/data/

sentinel monitor

告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效.需要注意的是master-ip 要写真实的ip地址而不要用回环地址(127.0.0.1)

sentinel monitor master001 127.0.0.1 6380 2

sentinel auth-pass

当在Redis实例中开启了requirepass,这里就需要提供密码。

sentinel auth-pass master001 000000

sentinel down-after-milliseconds

这个配置项指定需要多少时间无响应,一个master才会被这个sentinel主观地认为是不可用的.单位是毫秒,默认为30秒

sentinel down-after-milliseconds master001 10000

sentinel parallel-syncs

这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用.可以通过将这个值设为1(默认就是1)来保证每次只有一个slave处于不能处理命令请求的状态

sentinel parallel-syncs master001 1

sentinel failover-timeout

failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failover失败,默认为3分钟,单位为毫秒

sentinel failover-timeout master001 180000

是否拒绝重新配置通知脚本,默认拒绝(yes).

sentinel deny-scripts-reconfig yes
3.2、Slave的sentinel.conf
slave1的sentinel.conf

sentinel 使用的端口

port 26381

设置sentinel启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9/logs/redis-sentinel_26381.pid

日志文件路径

logfile /usr/local/redis-5.0.9/logs/redis-sentinel_26381.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9/data/

sentinel monitor

告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效.需要注意的是master-ip 要写真实的ip地址而不要用回环地址(127.0.0.1)

sentinel monitor master001 127.0.0.1 6380 2

sentinel auth-pass

当在Redis实例中开启了requirepass,这里就需要提供密码。

sentinel auth-pass master001 000000

sentinel down-after-milliseconds

这个配置项指定需要多少时间无响应,一个master才会被这个sentinel主观地认为是不可用的.单位是毫秒,默认为30秒

sentinel down-after-milliseconds master001 10000

sentinel parallel-syncs

这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用.可以通过将这个值设为1(默认就是1)来保证每次只有一个slave处于不能处理命令请求的状态

sentinel parallel-syncs master001 1

sentinel failover-timeout

failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failover失败,默认为3分钟,单位为毫秒

sentinel failover-timeout master001 180000

是否拒绝重新配置通知脚本,默认拒绝(yes).

sentinel deny-scripts-reconfig yes
slave2的sentinel.conf

sentinel 使用的端口

port 26382

设置sentinel启动为后台守护进程

daemonize yes

pidfile的路径(daemonize yes时,redis默认会把pid写入下面的文件)

pidfile /usr/local/redis-5.0.9/logs/redis-sentinel_26382.pid

日志文件路径

logfile /usr/local/redis-5.0.9/logs/redis-sentinel_26382.log

持久化数据存放的目录

dir /usr/local/redis-5.0.9/data/

sentinel monitor

告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效.需要注意的是master-ip 要写真实的ip地址而不要用回环地址(127.0.0.1)

sentinel monitor master 127.0.0.1 6380 2

sentinel down-after-milliseconds

这个配置项指定需要多少时间无响应,一个master才会被这个sentinel主观地认为是不可用的.单位是毫秒,默认为30秒

sentinel down-after-milliseconds master 10000

sentinel parallel-syncs

这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用.可以通过将这个值设为1(默认就是1)来保证每次只有一个slave处于不能处理命令请求的状态

sentinel parallel-syncs master 1

sentinel failover-timeout

failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel 将会认为此次failover失败,默认为3分钟,单位为毫秒

sentinel failover-timeout master 180000

是否拒绝重新配置通知脚本,默认拒绝(yes).

sentinel deny-scripts-reconfig yes
3.3、启动sentinel

启动redis

/usr/local/redis-5.0.9/bin/redis-sentinel /usr/local/redis-5.0.9/etc/sentinel.conf
/usr/local/redis-5.0.9-slave1/bin/redis-sentinel /usr/local/redis-5.0.9-slave1/etc/sentinel.conf
/usr/local/redis-5.0.9-slave2/bin/redis-sentinel /usr/local/redis-5.0.9-slave2/etc/sentinel.conf
3.4、验证
3.4.1、查看进程

查看是否6个redis进程

ps -ef|grep redis|grep -v grep
3.4.2、登录查看

登录查看

redis-cli登录redis服务查看

/usr/local/redis-5.0.9/bin/redis-cli -p 26380 -a 000000

查看哨兵

info sentinel
3.5、测试
3.5.1、关闭Master(127.0.0.1:5671),查看Master是否变更

登录Master节点

/usr/local/redis-5.0.9/bin/redis-cli -p 6380 -a 000000

关闭

127.0.0.1:6380> shutdown
3.5.2、登录Slave的redis查看主从状态

登录slave1节点

/usr/local/redis-5.0.9-slave1/bin/redis-cli -p 6381 -a 000000

查看主从状态

info replication

127.0.0.1:6381> info replication

Replication

role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6382,state=online,offset=162416,lag=0
master_replid:5dfa9dce3e68788817ba87645838956a502ff62f
master_replid2:c43446f5fb7a54e871a93a460cfbfc4cae58ff35
master_repl_offset:162550
second_repl_offset:11643repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:162550

登录slave1节点

/usr/local/redis-5.0.9-slave2/bin/redis-cli -p 6382 -a 000000

查看主从状态

info replication

127.0.0.1:6382> info replication

Replication

role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:197896
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:5dfa9dce3e68788817ba87645838956a502ff62f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:197896
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:12202
repl_backlog_histlen:185695
3.5.3、查看读写是否同步

set值

127.0.0.1:6381> set key1 2
OK

查看值

127.0.0.1:6382> get key1
"2"

标签:5.0,Redis,redis,模式,master,usr,sentinel,local
From: https://www.cnblogs.com/blog-cxyzy/p/18063016

相关文章

  • Redis2
    Set类型在Redis中,我们可以将set类型看作为没有排序的字符集合。和List一样,我们也可以在该类型的数据上执行添加、删除或判断某一元素是否存在等操作。和List不同的是,Set集合中不允许出现重复的元素。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多......
  • 神州笔记本 win11 节能模式 供电不足 自动关机
    刚刚买了一个神州笔记本没几天,用着用着就出现问题了。本人使用电脑有个极为不好的习惯,那就是会一次性打开特别多的应用,然后不关,一直留着,这个习惯虽然不好但也是一直没有啥问题的,不过最近换了个新的笔记本就出现了问题。神州笔记本开启省电模式:之所以开这个模式其实并不是为......
  • 06_原型模式
    原型模式是一种创建型设计模式,它通过克隆现有对象来创建新对象,而不是通过实例化类来创建。原型模式允许我们创建具有相同属性和方法的对象集合,从而减少了对象的创建成本。在原型模式中,我们首先创建一个原始对象,然后通过克隆该对象来创建新的对象。这样,我们可以在不重新实例化类的......
  • 05_建造者模式
    建造者模式是一种创建型设计模式,旨在让你能够创建复杂对象,而无需直接在应用程序中指定其具体类型。通过建造者模式,你可以将对象的构建过程和表示分离,从而使相同的构建过程可以创建不同表示形式的对象。这种模式通常包括以下几个关键组件:产品(Product):最终要创建的复杂对象。抽......
  • Go语言实现设计模式之命令模式
    摘要:命令模式是一种常用的设计模式,它将请求封装成对象,从而使请求的发送者和接收者解耦。本文将详细介绍命令模式的概念和原理,并使用Go语言实现一个示例,以帮助读者更好地理解该设计模式的应用。引言:在软件开发中,命令模式是一种常见的设计模式,它可以帮助我们将请求的发送者和接收......
  • Pod实现机制与设计模式
    每个Pod都有一个特殊的被称为"根容器"的Pause容器(Pause容器,又叫Infrastructure容器)。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或者多个紧密相关的用户业务容器。 众所周知,容器之间是通过Namespace隔离的,Pod要想解决上述应用场景,那么......
  • Ubuntu安装Redis
    Ubuntu安装RedisRedis在Ubuntu上是一个开源的内存型数据库,提供了快速、可扩展的键值存储。它使用ANSIC语言编写,支持网络,可以基于内存,也可以持久化。Redis不仅是一个key-value存储系统,还支持丰富的数据类型,如String、list、set、zset、hash等。这使得Redis能够适应不同场景下的存......
  • [Redis] 02-缓存和数据库数据一致性问题
    经过一番排查,确认服务器的性能瓶颈是在数据库。给服务器加上Redis,让其作为数据库的缓存。这样,在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用再去查询数据库,从而减轻数据库的压力,提高服务器的性能。一、缓存模型二、数据库和缓存的数据不一致问题更新数据时,数据......
  • 蓝牛服务器监控助手v5.00 免费版
       蓝牛服务器监控助手是一个免费的服务器监控程序,方便管理服务器,网站VPS等各种服务器电脑网络设置Ping检测一旦检测离线第一时间提醒并邮箱发送告警短信或邮件,软件介面简洁一看就会,绝对是服务器或网络设置管理必备助手更新日志2024年3月1日V5.00软件核心升级,软......
  • [Redis] 01-Redis快速入门
    一、Redis简介Redis属于键值对(key-value)数据库Redis中所有的数据都是以key-value的形式存储在内存中的所以读写Redis非常的快,在高并发的场景下,性能非常的好二、Redis服务端(redis-server)的安装省略。建议使用docker安装。Docker安装redis(保姆级教程&图文并茂)-腾讯......