redis 集群

主从复制

 一主二仆

用一台linux配置3台redis主机
1.在/usr/redis下创建一个目录myredis
2.在该目录下创建3台主机的配置文件(从安装目录复制) 
[root @linux -mini redis]# cp /usr/redis/redis- 5.0.5 /redis.conf /usr/redis/m
yredis/reids6380.conf
[root @linux -mini redis]# cp /usr/redis/redis- 5.0.5 /redis.conf /usr/redis/m
yredis/reids6381.conf
[root @linux -mini redis]# cp /usr/redis/redis- 5.0.5 /redis.conf /usr/redis/m
yredis/reids6382.conf

 修改配置文件中的配置信息

: 69 bind 192.168.48.142 绑定 IP
: 92 port 6666 实例端口号
: 136 daemonize yes 守护方式运行
: 158 pidfile 进程文件
: 253 dbfilename 持久化数据库文件
6380 主
6381 从
6382 从

 启动三台redis服器

/usr/redis/bin/redis-server /usr/redis/myredis/reids6380.conf
/usr/redis/bin/redis-server /usr/redis/myredis/reids6381.conf
/usr/redis/bin/redis-server /usr/redis/myredis/reids6382.conf

 查看三台服务器的运行情况

info 显示当前redis实例运行情况
info replication 显示主从角色信息
info keyspace 显示key分布情况

 连接客户端 :

/usr/redis/bin/redis-cli -h 192.168.206.131 -p 6380
/usr/redis/bin/redis-cli -h 192.168.206.131 -p 6381
/usr/redis/bin/redis-cli -h 192.168.206.131 -p 6382
配从
6380 主 6381 6382从
slaveof <ip><port>
成为某个实例的从服务器
6381 6382 上执行 : slaveof 192.168.48.141 6380
在主机上写,在从机上可以读取数据。主机可读可写。从机只能读,不能写。

 主机挂掉,重启就行,一切如初

 从机重启需重设:slaveof 192.168.206.131 6380

 薪火相传

上一个 Slave 可以是下一个 slave Master Slave 同样可以接收其他 slaves 的连接和同步请求,
那么该 slave 作为了链条中下一个的 master, 可以有效减轻 master 的写压力 , 去中心化降低风险。

 反客为主

当一个 master 宕机后,后面的 slave 可以立刻升为 master ,其后面的 slave 不用做任何修改。
slaveof no one 将从机变为主机。

 哨兵模式(sentinel)

 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

调整为一主二仆模式,6380带着6381、6382
自定义的/myredis目录下新建 sentinel.conf 文件,名字绝不能错

 配置哨兵,填写内容

 sentinel monitor mymaster 127.0.0.1 6379 1

其中 mymaster 为监控对象起的服务器名称,1 为至少有多少个哨兵同意迁移的数量。
启动哨兵
/usr/redis/bin

 执行/usr/redis/bin/redis-sentinel /usr/java/myredis/sentinel.conf

 当主机挂掉,从机选举中产生新的主机

 搭建redis集群

 规划网络

用一台虚拟机模拟6个节点,一台机器6个节点,创建出3 master、3 salve 环境。虚拟机是 CentOS7 , ip地址192.168.159.34

 创建 Redis 节点

首先在 192.168.159.34 机器上 /usr/redis/目录下创建 redis_cluster 目录;
mkdir redis_cluster

 创建目录

 在 redis_cluster 目录下,创建名为7001、7002,7003、7004、7005,7006的目录

 mkdir 7001 7002 7003 7004 7005 7006

 将 redis.conf 拷贝到这六个目录中

 cp /usr/redis/redis-5.0.5/redis.conf /usr/redis/redis_cluster/7001

 配置redis7001.conf

bind 192.168.159.34 #69
port 7001 #92
daemonize yes #136
pidfile "/var/run/redis_7001.pid" #158
logfile "/usr/redis/redis_cluster/7001/redis_7001.log" #171
dbfilename "dump_7001.rdb" #253
dir "/usr/redis/redis_cluster/7001" #263
cluster-enabled yes #832 启用集群配置
cluster-config-file nodes-7001.conf #840 设置集群配置文件
cluster-node-timeout 15000 #846 请求超时时间

 后台启动

#将修改后的7001的配置批量复制到其他几个目录
echo ./7002 ./7003 ./7004 ./7005 ./7006 | xargs -n 1 cp -v
/usr/java/redis_cluster/7001/redis.conf

 修改每个文件中的配置

:%s/7001/7002/g #将文件中7001批量替换为7002  

 启动这6个redis

[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7001/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7002/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7002/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7003/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7004/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7005/redis.conf
[root@localhost redis_cluster]# /usr/redis/bin/redis-server
/usr/redis/redis_cluster/7006/redis.conf

 创建redis的集群

/usr/java/redis/bin/redis-cli --cluster create 192.168.206.131:7001 192.1
68.206.131:7002 192.168.206.131:7003 192.168.206.131:7004 192.168.206.131:7005
192.168.206.131:7006 --cluster-replicas 1

 使用cli连接redis集群

 使用客户端链接集群 必须使用 -c 连接

 /usr/java/redis/bin/redis-cli -c -h 192.168.206.131 -p 7002

 查看集群的节点的信息 :cluster nodes

检查集群的状态  

 /usr/java/redis/bin/redis-cli --cluster check 192.206.131:7002

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值