redis 的集群环境部署-flyfish

redis 的集群环境部署-flyfish,第1张

redis 集群环境部署

标签(空格分隔): 运维系列

一: redis 集群概述 二: redis cluster 安装
一:redis 集群概述 1.1:redis集群
Redis3.0版本之后支持Cluster.
1.2: redis cluster的现状
 目前redis支持的cluster特性:

  1):节点自动发现

  2):slave->master 选举,集群容错

  3):Hot resharding:在线分片

  4):进群管理:cluster xxx

  5):基于配置(nodes-port.conf)的集群管理

  6):ASK 转向/MOVED 转向机制.
1.3: redis cluster的架构

redis 的集群环境部署-flyfish,第2张

 架构细节:

  (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

  (2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

  (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

  (4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
1.4:redis-cluster选举:容错

redis 的集群环境部署-flyfish,第3张

(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉.

  (2):什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的 *** 作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误

      a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.

      b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.
二:redis cluster安装 2.1 环境准备:
系统:
    rhel7.6x64

主机名配置:

cat /etc/hosts 
---
192.168.100.21  rhel01.flyfish
192.168.100.22  rhel02.flyfish
192.168.100.23  rhel03.flyfish

---
本次 使用三台虚拟机 模拟 6 给节点 的redis 每台机器两台 redis 分散不通端口

192.168.100.21   7000 7001

192.168.100.22   7003 7004

192.168.100.23   7005 7006
2.2 安装编译redis:
三台机器全装:

 wget http://download.redis.io/releases/redis-5.0.4.tar.gz
 tar xzvf redis-5.0.4.tar.gz
 cd redis-5.0.4
 make
redis 的集群环境部署-flyfish,第4张
172.17.100.12 

cd redis-5.0.4/src/

cp -p redis-* /usr/local/bin/

cd /usr/local/bin/

rm -rf *.c
rm -rf *.o

mkdir -p /usr/local/redis_cluster

cd /usr/local/redis_cluster/

mkdir 7000

mkdir 7001

cd /root

cd redis-5.0.4/

cp -p redis.conf /usr/local/redis_cluster/7000

cp -p redis.conf /usr/local/redis_cluster/7001

redis 的集群环境部署-flyfish,第5张

redis 的集群环境部署-flyfish,第6张

cd /usr/local/redis_cluster/7000/

vim redis.conf
---
port  7000                                        //端口7000,7001,7002,7003,7004,7005        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002,7003,7004,7005
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002,7003,7004,7005
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写 *** 作都记录一条日志 
2.2 启动redis
192.168.100.11

cd /usr/local/

bin/redis-server redis_cluster/7000/redis.conf

bin/redis-server redis_cluster/7001/redis.conf

redis 的集群环境部署-flyfish,第7张

redis 的集群环境部署-flyfish,第8张

192.168.100.12

cd /usr/local/

bin/redis-server redis_cluster/7002/redis.conf

bin/redis-server redis_cluster/7003/redis.conf

redis 的集群环境部署-flyfish,第9张

redis 的集群环境部署-flyfish,第10张

192.168.100.13

cd /usr/local/

bin/redis-server redis_cluster/7004/redis.conf

bin/redis-server redis_cluster/7005/redis.conf

redis 的集群环境部署-flyfish,第11张

启动集群
yum -y install ruby ruby-devel rubygems rpm-build

cd /usr/local/

bin/redis-cli --cluster create 192.168.100.21:7000 192.168.100.21:7001 192.168.100.22:7002 192.168.100.22:7003 192.168.100.23:7004 192.168.100.23:7005 --cluster-replicas 1

redis 的集群环境部署-flyfish,第12张

redis 的集群环境部署-flyfish,第13张

redis 的集群环境部署-flyfish,第14张

2.3 测试redis 集群
在192.168.100.21 上面 创建 一个 键 

cd /usr/local/

bin/redis-cli -c -h 192.168.100.21 -p 7000

set yangyang 11

redis 的集群环境部署-flyfish,第15张

去 192.168.100.23  上面 去查看 键

cd /usr/local/

bin/redis-cli -c -h 192.168.100.23 -p 7004

get yangyang

redis 的集群环境部署-flyfish,第16张

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/542658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019-08-16
下一篇 2019-08-16

发表评论

登录后才能评论

评论列表(0条)

保存