关闭
Hit
enter
to search or
ESC
to close
May I Suggest ?
#leanote #leanote blog #code #hello world
柯仓无居所
Home
Archives
Tags
Search
Redis切换文档
? Redis 切换 ?
? redis ?
277
0
0
swimming
? Redis 切换 ?
? redis ?
# Redis切换文档 标签: Reids 切换 --- > Redis切换分为横向扩展和缩减,集群故障切换【此切换需要依赖哨兵】 ### **横向扩容或者缩减** #### **1. 缩减切换步骤** > 节点缩减必须在备节点上执行一下命令,**严禁主节点执行**。 + 使用kill命令停止需要停止节点的哨兵进程 ``` $ ps -ef | grep 26379| grep -v grep | awk '{print $2}'|xargs kill -9 ``` + **备节点执行**kill命令停止需要停止节点的数据服务进程【注意确定不要再主节点上kill】 ``` $ ps -ef | grep ":6379"| grep -v grep | awk '{print $2}'|xargs kill -9 ``` + 修改哨兵权重 ``` $ /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel set {mastername} quorum 2 > sentinel reset {mastername} > info #查看执行结果,slaves和sentinels是否达到预期 ``` #### **2. 扩容步骤** > 扩容比较简单,可按照以下步骤梳理 - 复制安装文件到新节点 - 删除backup和logs内文件 - 修改 etc/redis.conf 内 slaveof 参数 - 修改 etc/redis.conf 内 slave-priority 参数 【不要有重复即可,决定master漂移优先级】 - 修改 etc/sentinel.conf 内 sentinel monitor 后面的mastername 以及masterIP和sentinel权重值 - 删除 etc/sentinel.conf 内 sentinel known 和 sentinel leader-epoch 开头行 - 先启动数据服务 ``` /home/redis/redis-cluster/redis-6379/bin/redis-server /home/redis/redis-cluster/redis-6379/etc/redis.conf & ``` - 验证数据是否同步完成,返回项第4项是否为connected ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 6379 -a {password} role ``` - 启动哨兵 ``` /home/redis/redis-cluster/redis-6379/bin/redis-sentinel /home/redis/redis-cluster/redis-6379/etc/sentinel.conf & ``` - 判断哨兵是否加入,命令执行完后,查看 etc/sentinel.conf 内是否有本节点 ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel reset {mastername} > info ``` #### **3. master节点漂移** ``` 主节点漂移主要依照redis.con中的【slave-priority】值来判断移动方向,值越小优先移动越高,此属性阈值为0-100 slave-priority 可以通过在redis内使用 config set slave-priority 90 设置 ``` **漂移命令,只需要在其中任一哨兵节点上执行即可** ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel failover mastername # 查看同步切换状态,在新master上执行: /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 6379 -a {password} role ``` ### **集群切换** > **此切换仅限于哨兵正常,数据节点全部下线的情况下** > 此方法主要是使用哨兵的管理功能,移除master节点,然后添加主节点后,手动failover至新节点 > 脚本存放地:/home/tomcat/shiwm-service/io_scripts/change_redis_sentinel.sh,脚本内包含了执行的90%的步骤 > 以上脚本执行完成后,登陆一个哨兵节点。failover 至新节点。 > 扫尾工作,更新订阅:CLIENT KILL TYPE pubsub ~!!!!! > 整个切换过程哨兵服务不会变,只有数据节点会发生变化 **操作步骤** + 收集需要切换的redis集群IP,按照以下格式录入至redis.host内: >[redis1] >10.10.2.130 > ... >[redis2] >10.10.2.56 > ... + 修改 【change_redis_sentinel.sh】 脚本内的redis env 和 sentinel_monitor_cli 后面的master name 、IP和权重 + 执行脚本 ``` ansible -i redis.host redis1 -m script -a 'src=change_redis_sentinel.sh' -u redis ``` + 登陆哨兵节点使用一下命令切换master节点至新数据服务集群 ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel failover mastername ``` 以上为redis切换文档所有内容,一下附送部分命令 + 查看redis 连接信息 ``` ./redis-cli -p 6379 -a password client list ``` + 查看 redis master节点信息 ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel masters ``` + 查看 redis 数据节点和哨兵节点信息 ``` /home/redis/redis-cluster/redis-6379/bin/redis-cli -p 26379 > sentinel sentinels/slaves {mastername} ```
觉得不错,点个赞?
提交评论
Sign in
to leave a comment.
No Leanote account ?
Sign up now
.
0
条评论
More...
文章目录
No Leanote account ? Sign up now.