redis的主从复制和高可用集群

一.安装redis服务:

1.解压redis安装包

tar zxf redis-4.0.8.tar.gz

2.源码编译redis

cd redis-4.0.8
yum install gcc     # 安装redis源码编译依赖性gcc,在make之前安装
make  
make install 

3.执行redis安装脚本

cd utils/   
./install_server.sh

这里写图片描述
4.检验redis是否安装正确

redis-cli   
info 

5.vim /etc/redis
使得6379监听所有ip
这里写图片描述
重启redis服务:
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start

二.redis实现主从复制:

1.在server1中执行redis命令行redis-cli设置一个键值set name jay get name
这里写图片描述
2.在sevrer2中修改配置文件vim /etc/redis/6379.conf

slaveof 172.25.77.1 6379     # 设置自己的master为172.25.77.1

重启redis /etc/init.d/redis_6379 restart
3.在server2中的redis命令行读取name的值
这里写图片描述

三.redis集群一

1.在server中:

cd redis-4.0.8
cp sentinel.conf  /etc/redis
修改sentinel.conf文件:
 17 protected-mode no
 21 port 26379
 50 dir /tmp任意一个
 69 sentinel monitor mymaster 172.25.77.1 6379 2
 # 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)
 98 sentinel down-after-milliseconds mymaster 5000

这里写图片描述
2.将server1中修改好的配置文件scp给server2和server3,因为这三台主机构成集群,所以这个配置文件是相同的
3.打开一个shell连接三台主机中的任意一个,做监控命令,查看master和slave
redis-server /etc/redis/sentinel.conf –sentinel
4.宕掉现在的master,在监控窗口中查看现在的master
初始master是server1:
这里写图片描述
宕掉server1:
这里写图片描述
查看监控中的变化:
这里写图片描述
这里写图片描述
这时我们发现,集群中的master变为server3,接着我们查看server2中的配置文件:
这里写图片描述
配置文件中指定的master也变为了server3,因此集群中master的变化是彻底的….

四.redis集群二

创建集群化工具:
1.将集群化工具的运行脚本放在系统第三方软件目录中
cd redis-4.0.8/src/
cp redis-trib.rb /usr/local/bin/
cd /usr/local/bin/
2.执行redis-trib.rb会出现依赖性的错误,于是开始解决依赖性:
yum install ruby
yum install rubygems-1.3.7-5.el6.noarch.rpm
yum install libyaml-0.1.3-4.el6_6.x86_64.rpm ruby-2.2.3-1.el6.x86_64.rpm
gem install –local redis-4.0.1.gem
3.查看集群化工具是否安装完成
gem list –local
这里写图片描述
4.创建集群,查看集群中的主从关系

mkdir cluster    
mkdir cluster/700{1..6} 
# 在cluster下建立六个目录700*,作为集群中每个节点的目录在里边写配置文件redis.conf
  port 700x    端口
  cluster-enabled yes
  cluster-config-file nodes.conf
  cluster-node-timeout 5000
  appendonly yes
  daemonize yes     #默认值 no,该参数用于定制 redis 服务是否以守护模式运行
  pidfile /usr/local/cluster/700x/redis.pid    # 节点的pid文件所在位置
  logfile /usr/local/cluster/700x/redis.log    # 节点的日志文件所在位置

redis-server redis.conf   ---加载配置文件

5.cat redis.log查看日志,改正warning
这里写图片描述
查看相应端口是否打开:netstat -antlp
4.创建集群:

扫描二维码关注公众号,回复: 2761736 查看本文章
redis-trib.rb create --replicas 1 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 127.0.0.1:7006

这里写图片描述
这里写图片描述
5.在集群中写入值并查看
这里写图片描述
6.使现在保存键值的master宕掉,进入集群,查看数据(slave接替)
这里写图片描述
接着宕掉slave,查看发现得不到数据,如果将slave或者master恢复,数据也会恢复
这里写图片描述

猜你喜欢

转载自blog.csdn.net/jay_youth/article/details/81591844