redis 部署过程

第一部分理论

1、redis的工作原理及作用
哨兵是用于监控redis集群HA中MASTER状态的工具,在2.4以上版本已集成
1)master状态的监控
2)如果发现master异常,则进行master-slave切换,把其中一台slave作为master上线,原master下线作为slave
3)master-slave切换后,相关配置发生变化,master_redis.conf ,slave_redis.conf , sentinel_redis.conf 三个配置文件,同时master_redis.conf文件增加新一行slaveof 
sentinel.conf的监控目标也自动调换

2、redis的工作模式
1)单节点模式
2)主从模式
3)sentinel哨兵模式


3、各工作模式的原理及优缺点
1)单节点模式,除非是资源有限,或该服务不重要,否则没有可取之处
2)主从模式,一主二从比较流行,但缺乏灵活性,出现问题,需要人为被动切换,
3)哨兵模式,通过sentinel工具,按照设定的有效时间,监控master主机状态,对主动判断主机是否异常,有效进行master-slave切换,达到平滑切换

4、sentinel的工作方式
1)每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令 
2)如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。 
3)如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。 
4)当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线 
5)在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令 
6)当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次 
7)若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除。 
若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。


第二部分实操


1、sentinel 哨兵简易配置

port 26379
dir "/tmp"
daemonize yes
protected-mode no
logfile "/data/redis/sentinel.log"
sentinel monitor mymaster 106.12.203.50 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster redis


2、redis-cluster 群集的部署及常用命令

1)基础环境安装
2)启动redis-cluster命令 
   新增节点
   删除节点
   
******

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一种高效的内存数据库,它支持多种数据结构,如字符串、列表、哈希表、集合等。Redis集群是Redis的一种高可用性解决方案,可以实现数据的分布式存储和负载均衡。下面是Redis集群部署的详细过程: 1. 安装Redis Redis的安装可以通过源码编译或者包管理器安装。在Ubuntu系统上,可以使用以下命令安装Redis: ``` sudo apt-get update sudo apt-get install redis-server ``` 2. 配置RedisRedis的配置文件中,需要配置集群的节点数量、端口号等信息。在Ubuntu系统上,Redis的配置文件位于/etc/redis/redis.conf。需要修改以下参数: ``` bind 0.0.0.0 port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ``` 其中,bind参数指定Redis绑定的IP地址;port参数指定Redis监听的端口号;cluster-enabled参数启用Redis集群模式;cluster-config-file参数指定集群配置文件的路径;cluster-node-timeout参数指定节点超时时间;appendonly参数启用持久化。 3. 创建Redis集群 使用Redis自带的脚本redis-trib.rb可以轻松地创建Redis集群。在Ubuntu系统上,脚本位于/usr/share/redis/tools/redis-trib.rb。需要使用以下命令创建集群: ``` ./redis-trib.rb create --replicas 1 IP1:PORT1 IP2:PORT2 IP3:PORT3 IP4:PORT4 IP5:PORT5 IP6:PORT6 ``` 其中,--replicas参数指定每个主节点的从节点数量;IP1:PORT1等参数指定每个节点的IP地址和端口号。 4. 测试Redis集群 使用redis-cli命令可以连接到Redis集群并进行测试。需要使用以下命令连接到集群: ``` redis-cli -c -h IP1 -p PORT1 ``` 其中,-c参数指定使用集群模式;-h参数指定连接的IP地址;-p参数指定连接的端口号。 可以使用以下命令测试集群: ``` set key1 value1 get key1 ``` 其中,set命令设置key1的值为value1;get命令获取key1的值。如果集群配置正确,操作应该成功。 5. 扩展Redis集群 当Redis集群需要扩展时,可以使用以下步骤: 1)安装Redis和配置文件; 2)启动新节点并加入集群: ``` ./redis-cli --cluster add-node NEW_IP:NEW_PORT EXISTING_NODE_IP:EXISTING_NODE_PORT --cluster-slave --cluster-master-id MASTER_NODE_ID ``` 其中,NEW_IP和NEW_PORT参数指定新节点的IP地址和端口号;EXISTING_NODE_IP和EXISTING_NODE_PORT参数指定现有节点的IP地址和端口号;--cluster-slave参数指定新节点为从节点;--cluster-master-id参数指定新节点的主节点ID。 3)将新节点的从节点数量设置为1: ``` ./redis-cli --cluster replicate NEW_NODE_ID MASTER_NODE_ID ``` 其中,NEW_NODE_ID参数指定新节点的ID;MASTER_NODE_ID参数指定新节点的主节点ID。 4)重新分配槽位: ``` ./redis-cli --cluster reshard NEW_NODE_ID --cluster-from MASTER_NODE_ID --cluster-slots COUNT --cluster-yes ``` 其中,NEW_NODE_ID参数指定新节点的ID;MASTER_NODE_ID参数指定新节点的主节点ID;--cluster-slots参数指定新节点需要接收的槽位数量;--cluster-yes参数确认操作。 5)等待槽位重新分配完成。 6)测试新节点。 参考文献: 1. Redis官方文档:https://redis.io/documentation 2. Redis集群指南:https://redis.io/topics/cluster-tutorial

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值