Redis 3.2.6 Sentinel部署

本文详细介绍了在CentOS 6.8环境下部署Redis高可用集群的过程,包括安装配置Redis、设置Master-Slave复制及Sentinel故障转移机制。

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

CentOS 6.8
monitor:   192.168.1.100
master: 192.168.1.120
slave: 192.168.1.121
            192.168.1.122

1.安装redis

tar -zxvf redis-3.2.6.tar.gz
mv redis-3.2.6 /usr/local/
cd /usr/local/redis-3.2.6
make
make install
最后会有一个warning:
Hint: To run 'make test' is a good idea ;)
如果想要make test 的话,可能会报错:
You need tcl 8.5 or newer in order to run the Redis test
解决方法:
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
tar -xzvf tcl8.6.1-src.tar.gz
mv tcl8.6.1 /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
./configure  
make  
make install
再去make test即可
启动redis服务
src/redis-server
启动redis客户端
src/redis-cli
2.编辑Master上的配置文件
vi redis.conf
bind 192.168.1.120
# 开启守护模式  
daemonize yes
# 打开aof持久化  
appendonly yes  
# 每秒一次aof写  
appendfsync everysec 
3.编辑Slave上的配置文件
vi redis.conf
bind 192.168.1.121(122)
# 开启守护模式  
daemonize yes
# 打开aof持久化  
appendonly yes  
# 每秒一次aof写  
appendfsync everysec
# 指定所属的master  
slaveof 192.168.1.120 6379  
# 指定slave只读  
slave-read-only yes
4.编辑sentinel.conf(三个节点下都要一样配置,master的sentinel配置在monitor上)
vi sentinel.conf
# sentinel通讯端口
port 26379
# sentinel需要监控的master/slaver信息  2为投票机制
sentinel monitor mymaster 192.168.1.120 6379 2
# master被当前sentinel实例认定为失效的间隔时间
sentinel down-after-milliseconds mymaster 10000
# 当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数
# 在salve执行salveof同步时,将会终止客户端请求。
# 此值较大,意味着“集群”终止客户端请求的时间总和和较大。
# 此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。
sentinel parallel-syncs mymaster 1
# failover过期时间。当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failover失败。
sentinel failover-timeout mymaster 60000
5.启动所有节点下的redis server
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
这里需要注意redis server启动时需要指定刚刚编辑好的conf文件
6.启动所有节点下的sentinel
./redis-sentinel /usr/local/redis/sentinel.conf
也是要指定编辑好的conf文件
7.查看master节点信息
./redis-cli -h 192.168.1.120 -p 6379 info Replication
8.查看任意slave节点信息

9.插入数据测试
Master:
./redis-cli -h 192.168.1.120 -p 6379
192.168.1.120:6379> set name zzp
OK
192.168.1.120:6379> get name
"zzp"
Slave:
./redis-cli
127.0.0.1:6379> get name
"zzp"
127.0.0.1:6379> set name zzc
(error) READONLY You can't write against a read only slave.
10.failover测试
将master节点关闭模拟宕机,
monitor:
# +sdown master mymaster 192.168.1.120 6379
显示master宕机,但是只有这一条状态
再看slave节点,也是一样,并没有进行之后的failover的选举
等半天没有任何动静之后,我再将master启动,发现master又回到了集群中

在网上查找了好久,找到几个类似的情况,解决方法:
在sentinel.conf 中加入 protected-mode no
如上重新配置之后再次进行测试
Master节点关闭:

可以看到failover开始,并进行选举121节点为master~
同时再回复原先的master,查看其节点信息

发现192.168.1.120已经从master,变为slave~


### Redis 3.2.6 集群部署指南 Redis 集群是一种分布式解决方案,能够提供高可用性和水平扩展能力。以下是关于 Redis 3.2.6 集群的部署方法和相关注意事项。 #### 1. 下载与安装 首先需要下载并解压 Redis 的安装包: ```bash wget http://download.redis.io/releases/redis-3.2.6.tar.gz tar zxvf redis-3.2.6.tar.gz cd redis-3.2.6 make make install PREFIX=/data/redis/6379 ``` 上述命令会将 Redis 的可执行文件(如 `redis-server` 和 `redis-cli`)安装到指定路径下[^1]。如果未指定路径,则默认安装在 `/usr/local/bin/` 目录下[^2]。 #### 2. 配置 Redis 节点 每个 Redis 实例都需要单独的配置文件。以下是一个示例配置文件内容: ```plaintext port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes ``` 此配置文件设置了端口号为 7000,并启用了集群模式。`cluster-config-file` 指定了集群节点的配置文件名称,`cluster-node-timeout` 定义了节点间通信超时时间,`appendonly yes` 表示启用 AOF 持久化。 #### 3. 启动多个 Redis 实例 假设需要启动 6Redis 实例(33 从),可以分别在不同的端口上启动它们: ```bash /data/redis/6379/bin/redis-server /path/to/redis-7000.conf /data/redis/6379/bin/redis-server /path/to/redis-7001.conf ... ``` 确保每个实例的配置文件中端口号不同,并且 `cluster-config-file` 的文件名也不同。 #### 4. 创建 Redis 集群 使用 `redis-cli` 工具创建集群: ```bash /data/redis/6379/bin/redis-cli --cluster create \ 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 \ 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \ --cluster-replicas 1 ``` 此命令会创建一个包含 3 个主节点和 3 个从节点的集群,每个主节点都有一个对应的从节点。 #### 5. 测试集群功能 可以通过以下命令测试集群是否正常工作: ```bash /data/redis/6379/bin/redis-cli -c -p 7000 set key value get key ``` 如果集群正常运行,应该能够成功设置和获取键值对。 #### 6. 高级配置(可选) - **哨兵模式**:为了进一步提高高可用性,可以结合 Redis 哨兵模式进行部署[^2]。 - **Solr 集成**:如果需要与其他服务(如 Solr)集成,可以参考 Zookeeper 的协调管理方式[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值