一:主从复制:
修改丛机的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