redis三节点sentinel部署

本文详细介绍了如何搭建Redis集群,包括主从复制、哨兵配置及启动过程。通过具体步骤和命令展示了各组件间的交互方式,并验证了集群的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

角色          ip       port
master      127.0.0.1  6379  
slave-1     127.0.0.1  6380  
slave-2     127.0.0.1  6381  
sentinel-1  127.0.0.1  26379  
sentinel-2  127.0.0.1  26380  
sentinel-3  127.0.0.1  26381  


/etc/redis_6379.conf 文件配置
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/data/redis/6379/"


/etc/redis_6380.conf 文件配置
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/data/redis/6380/"
slaveof 127.0.0.1 6379

/etc/redis_6381.conf 文件配置
port 6381
daemonize yes
pidfile /var/run/redis_6380.pid
logfile "6381.log"
dbfilename "dump-6381.rdb"
dir "/data/redis/6381/"
slaveof 127.0.0.1 6379


/etc/redis_sentinel_26379.conf 文件配置
port 26379
daemonize yes
dir /data/redis/26379/
logfile "26379.log"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000


/etc/redis_sentinel_26380.conf 文件配置  
port 26380
daemonize yes
dir /data/redis/26380/
logfile "26380.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000


/etc/redis_sentinel_26381.conf 文件配置  
port 26381
daemonize yes
dir /data/redis/26381/
logfile "26381.log"
sentinel monitor mymaster 127.0.0.1 6381 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000


启动redis节点
redis-server /etc/redis_6379.conf &
redis-server /etc/redis_6380.conf &
redis-server /etc/redis_6381.conf &


启动sentinel节点
redis-sentinel /etc/redis_sentinel_26379.conf &
redis-sentinel /etc/redis_sentinel_26380.conf &
redis-sentinel /etc/redis_sentinel_26381.conf &

或者也可以使用此命令
redis-server /etc/redis_sentinel_26379.conf --sentinel &
redis-server /etc/redis_sentinel_26380.conf --sentinel &
redis-server /etc/redis_sentinel_26381.conf --sentinel &


确认
[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 6379 ping
PONG
[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 6380 ping
PONG
[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 6381 ping
PONG

[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 26379 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 26380 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=sdown,address=127.0.0.1:6380,slaves=0,sentinels=2

[root@lgj01 ~]# redis-cli -h 127.0.0.1 -p 26381 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=sdown,address=127.0.0.1:6381,slaves=0,sentinels=2

[root@lgj01 etc]# ps -ef|grep redis
root      3667     1  0 10:05 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root      3675     1  0 10:05 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6380
root      3684     1  0 10:05 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6381
root      4091     1  0 10:13 ?        00:00:00 redis-sentinel *:26379 [sentinel]
root      4108     1  0 10:13 ?        00:00:00 redis-sentinel *:26380 [sentinel]
root      4116     1  0 10:13 ?        00:00:00 redis-sentinel *:26381 [sentinel]
root      4128   781  0 10:13 pts/0    00:00:00 grep --color=auto redis

[root@lgj01 ~]# netstat -tnlp|grep redis
tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      4091/redis-sentinel
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      3667/redis-server 1
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      4108/redis-sentinel
tcp        0      0 127.0.0.1:6380          0.0.0.0:*               LISTEN      3675/redis-server 1
tcp        0      0 0.0.0.0:26381           0.0.0.0:*               LISTEN      4116/redis-sentinel
tcp        0      0 127.0.0.1:6381          0.0.0.0:*               LISTEN      3684/redis-server 1
tcp6       0      0 :::26379                :::*                    LISTEN      4091/redis-sentinel
tcp6       0      0 :::26380                :::*                    LISTEN      4108/redis-sentinel
tcp6       0      0 :::26381                :::*                    LISTEN      4116/redis-sentinel


关闭 sentinel
redis-cli -p 26379 shutdown


转载于:https://www.cnblogs.com/liang545621/p/9522165.html

Redis节点部署集群通常不被推荐,因为它的可扩展性和高可用性有限。要创建一个真正的Redis集群,你需要遵循以下步骤: 1. **安装和配置Redis**: 首先,你需要在每个节点上安装Redis,并配置为单机模式。确保每个实例都有唯一的实例ID。 2. **开启Redis的集群模式**: 使用`redis-cli`命令行工具或者Redis的配置文件(`redis.conf`),将`cluster-enabled`设置为`yes`。在配置文件中,还需要设置其他关键参数,如`cluster-node-timeout`、`cluster-notify-timeout`等。 3. **节点发现机制**:Redis提供了几种节点发现方式: - `hash slots`:默认的节点分配方式,根据键的哈希值决定存储在哪个节点。 - `manual replication`:手动指定集群的拓扑结构。 4. **初始化集群**: 在第一个节点上运行`redis-cli`并执行`CLUSTER ADDSLOTS`命令,给每个节点分配一个或多个槽。然后,其他节点启动时会自动连接到已知的集群。 5. **节点间同步数据**: 在集群中,节点之间通过复制机制(REPL)来保持数据同步。每个节点都会备份其他部分节点的数据,以防主节点故障。 6. **监控和管理**: 可以使用Redis的`CLUSTER NODES`命令检查集群状态,`CLUSTER SLOTS`查看槽的分布情况。管理工具如`redis-cli`的`CLUSTER MEET`用于添加新节点。 7. **保护高可用**: 配置 Sentinel 作为Redis的高可用解决方案,Sentinel能够监控集群的健康状态并自动替换故障节点。 8. **测试和验证**: 最后,确保所有节点能正常通信和处理请求,通过客户端工具测试数据的正确分发和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值