Redis主从复制,哨兵,集群创建与增删操作

一:主从复制:
修改丛机的redis.conf文件
语法:Slaveof masterip masterport

slaveof 192.168.242.137 6379

二:哨兵:
将从服务器中sentinel.conf 复制到 /usr/local/redis/etc/
修改文件sentinel.conf:

sentinel monitor mymaster 192.168.119.130 6379 1 #名称 ip(master) 投票选举次数

 sentinel down-after-milliseconds mymaster 5000
 超过多少时间宕机(每个多长时间监控)

sentinel parallel-syncs mymaster 2 丛机个数

sentinel failover-timeout mymaster 180000 主节点失效的时间

主服务器启动Redis

从服务器启动redis 并启动哨兵

/usr/local/redis/bin/redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

查看哨兵信息

/usr/local/redis/bin/redis-cli -h 192.168.119.130 -p 26379 info
Sentinel

主机宕机 会有一个从服务器成为主机 主机再次激活时,主机变成丛机。

三:集群
1. 创建集群:
第一步 在redis-cluster中创建6个文件夹

     mkdir -p /usr/local/redis-cluser
     mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005    mkdir 7006

第二步 将redis.conf配置文件分别放在这6文件下

/usr/redis/redis/etc# cp redis.conf
/usr/redis/redis/redis-cluster/7001

   对配置文件做如下修改
   1)daemonize yes
   2) bind 192.168.119.130
   3) dir "/usr/redis/redis/redis-cluter/7001/"
   4) cluster-enabled yes
   5) cluster-config-file nodes-7001.conf 
   6) cluster-node-timeout 5000
   7) appendonly yes
   8) port 7001 分别对应每台机器的端口号

第三步 由于redis集群需要使用ruby命令,所以需要安装ruby

1)sudo apt-get install ruby
2) sudo apt-get install rubygems
3) gem install redis

第四步 分别启动6个redis实例,然后检查是否启动成功

/usr/redis/redis/bin/redis-server
/usr/redis/redis/redis-cluster/7001/redis.conf
ps -ef| grep redis 或 netstat -tunpl | grep redis 查看服务器运行状态

第五步 创建集群: 进入 redis的src目录下
执行 ./redis-trib.rb create --replicas 1 192.168.242.137:7001 192.168.242.137:7002 192.168.242.137:7003 192.168.242.137:7004 192.168.242.137:7005 192.168.242.137:7006

查看集群状态

cluster nodes

2.在集群中添加主节点
第一步:同上第一步
第二步:同上第二步
第三步:启动redis实例
第四步:使用add-node命令(添加主节点):前者为新增节点,后者为已知存在节点

/usr/local/redis3.0/src/redis-trib.rb add-node 192.168.1.171:7007
192.168.1.171:7001

第五步: 为该主节点添加槽数(192.168.1.171:7001指任意一个主节点)

/usr/local/redis3.0/src/redis-trib.rb reshard 192.168.1.171:7001

提示一:是希望你需要多少个槽移动到新的节点上,可以自己设置,比如300个槽。
提示二:是你需要把这300个slot槽移动到那个节点上去(需要指定节点id),并且下个提示是输入all为从所有主节点(7001 7002 7003)中分别抽取响应的槽数(一共为200个槽到指定的新节点中!,并且会打印执行分片的计划。)
提示三:输入yes确认开始执行分片任务。

3.创建从节点
使用add-node命令(添加从节点):前者为新增节点,后者为已知存在节点

/usr/local/redis3.0/src/redis-trib.rb add-node 192.168.1.171:7008
192.168.1.171:7001

     登录7008: 

/usr/redis/redis/bin/redis-cli -c -h 192.168.119.130 -p 7008

     在7008上操作

cluster replicate fd3df847b734d1ef798935bc4f9af8176e5aad7(指定主节点的id)

4.在集群中删除从节点
删除从节点7008,输入del-node命令,指定删除节点ip和端口,以及节点id

/usr/local/redis3.0/src/redis-trib.rb del-node 192.168.1.171:7008
97b0e0115326833724eb0ffe1d0574ee34618e9f

5.在集群中删除主节点
第一步: 将7007上的数据移动到其他主节点上

/usr/local/redis3.0/src/redis-trib.rb reshard 192.168.1.171:7007

(要删除的主节点)

–(目前只能把master的数据迁移到一个节点上,暂时做不了平均分配功能)

1提示一:是希望你需要多少个槽移动到其他的主节点上,可以查看到。
2提示二:是你需要把这些slot槽移动到哪个主节点上去(需要指定节点id),下个提示输入源节点(要删除的节点)下一个输入done。
3提示三:输入yes确认开始执行分片任务。

第二步:删除

/usr/local/redis3.0/src/redis-trib.rb del-node 192.168.1.171:7007 382634a4025778c040b7213453fd42a709f79e28
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值