@zhangyy
2019-12-10T07:38:39.000000Z
字数 2660
阅读 378
运维系列
- 一: redis 集群概述
- 二: redis cluster 安装
Redis3.0版本之后支持Cluster.
目前redis支持的cluster特性:1):节点自动发现2):slave->master 选举,集群容错3):Hot resharding:在线分片4):进群管理:cluster xxx5):基于配置(nodes-port.conf)的集群管理6):ASK 转向/MOVED 转向机制.

架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

(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状态.
系统:rhel7.6x64主机名配置:cat /etc/hosts---192.168.100.21 rhel01.flyfish192.168.100.22 rhel02.flyfish192.168.100.23 rhel03.flyfish---本次 使用三台虚拟机 模拟 6 给节点 的redis 每台机器两台 redis 分散不通端口192.168.100.21 7000 7001192.168.100.22 7003 7004192.168.100.23 7005 7006
三台机器全装:wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzvf redis-5.0.4.tar.gzcd redis-5.0.4make

172.17.100.12cd redis-5.0.4/src/cp -p redis-* /usr/local/bin/cd /usr/local/bin/rm -rf *.crm -rf *.omkdir -p /usr/local/redis_clustercd /usr/local/redis_cluster/mkdir 7000mkdir 7001cd /rootcd redis-5.0.4/cp -p redis.conf /usr/local/redis_cluster/7000cp -p redis.conf /usr/local/redis_cluster/7001


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


192.168.100.12cd /usr/local/bin/redis-server redis_cluster/7002/redis.confbin/redis-server redis_cluster/7003/redis.conf


192.168.100.13cd /usr/local/bin/redis-server redis_cluster/7004/redis.confbin/redis-server redis_cluster/7005/redis.conf

启动集群yum -y install ruby ruby-devel rubygems rpm-buildcd /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



在192.168.100.21 上面 创建 一个 键cd /usr/local/bin/redis-cli -c -h 192.168.100.21 -p 7000set yangyang 11

去 192.168.100.23 上面 去查看 键cd /usr/local/bin/redis-cli -c -h 192.168.100.23 -p 7004get yangyang

