一、Redis Cluster(Redis集群)简介:
(1)edis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群,这里我搭建用的是最新的版本 redis-5.0.7;
(2)redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;
(3)redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例。
二、集群搭建需要的环境:
(1)Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
(2)要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。
(3)安装ruby
三、部署集群:
为了节省资源,这边准备了两台虚拟机,各自安装三个网卡,这样总共就是六个网卡,也就是同时运行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
1、首先要注释掉 bind 项:
//redis 中 bind 选项默认监听所有网卡
2、做如下操作:
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 主服务器中操作
1、导入 key 文件:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
2、安装 rvm :
curl -sSL https://get.rvm.io | bash -s stable
1
3、执行环境变量:
source /etc/profile.d/rvm.sh
rvm list known //列出 Ruby 可安装的版本
4、安装 Ruby2.4.1 版本
rvm install 2.4.1
5、使用 Ruby2.4.1 版本
rvm use 2.4.1
ruby -v //查看当前 Ruby2.4.1 版本
6、再次安装 Redis
gem install redis
7、重新启动 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这台主机上