内容要点:node
1、Redis Cluster(Redis集群)简介:redis
2、集群搭建须要的环境:vim
3、部署集群:ruby
1、Redis Cluster(Redis集群)简介:bash
(1)redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本以前只支持单例模式,在3.0版本及之后才支持集群,这里我搭建用的是最新的版本 redis-5.0.7;服务器
(2)redis集群采用P2P模式,是彻底去中心化的,不存在中心节点或者代理节点;app
(3)redis集群是没有统一的入口的,客户端(client)链接集群的时候链接集群中的任意节点(node)便可,集群内部的节点是相互通讯的(PING-PONG机制),每一个节点都是一个redis实例。curl
2、集群搭建须要的环境:ide
(1)Redis集群至少须要3个节点,由于投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,因此2个节点没法构成集群。工具
(2)要保证集群的高可用,须要每一个节点都有从节点,也就是备份节点,因此Redis集群至少须要6台服务器。
(3)安装ruby环境,redis集群运行需基于ruby环境
3、部署集群:
为了节省资源,这边准备了两台虚拟机,各自安装三个网卡,这样总共就是六个网卡,也就是同时运行6个 redis 实例。
角色 | IP地址 |
redis1 | 192.168.220.131 |
redis2 | 192.168.220.164 |
redis3 | 192.168.220.165 |
redis4 | 192.168.220.135 |
redis5 | 192.168.220.166 |
redis6 | 192.168.220.167 |
第一步:先都安装好 redis 服务
第二步:修改配置文件,全部节点配置同样
vim /etc/redis/6379.conf 一、首先要注释掉 bind 项: //redis 中 bind 选项默认监听全部网卡 二、作以下操做: protected-mode no //关闭保护模式 port 6379 //开启监听端口 daemonize yes //以独立进程启动 cluster-enabled yes //开启群集功能 cluster-config-file nodes-6379.conf //群集名称文件位置 cluster-node-timeout 15000 //群集超时时间设置 appendonly yes //开启aof持久化
(1)重启服务:
/etc/init.d/redis_6379 restart
(2)重启事后,此时在 /var/lib/redis/6379 这个目录下,就会多出两个文件:
appendonly.aof :持久化文件
nodes-6379.conf :节点首次启动生成的配置文件
第三步:这步只须要在 master 主服务器中操做
一、导入 key 文件:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
二、安装 rvm :
curl -sSL https://get.rvm.io | bash -s stable
三、执行环境变量:
source /etc/profile.d/rvm.sh
rvm list known //列出 Ruby 可安装的版本
四、安装 Ruby2.4.1 版本
rvm install 2.4.1
五、使用 Ruby2.4.1 版本
rvm use 2.4.1
ruby -v //查看当前 Ruby2.4.1 版本
六、再次安装 Redis
gem install redis
七、从新启动 redis
/etc/init.d/redis_6379 restart
第四步:建立群集
六个实例分为三组,每组一主一从,–replicas 1 表示每组一个从,下面交互的时候,须要输入 yes 才能够建立。
使用源码解压目录中的 redis-trib.rb 工具建立群集。
redis-cli --cluster create 192.168.220.131:6379 192.168.220.164:6379 192.168.220.165:6379 192.168.220.135:6379 192.168.220.166:6379 192.168.220.167:6379 --cluster-replicas 1
第五步:验证:
(1)随意登陆一台 redis,建立一对键值:
redis-cli -h 192.168.220.164 -p 6379 //链接164这台主机
(2)此时,咱们链接登陆到另一台主机上,查看键名:
redis-cli -h 192.168.220.131 -p 6379 //链接到131这台主机上