Centos7搭建redis集群

部署方案及环境

本示例中采用6节点, 三个master和三个slaves两两成组的方式共同形成一个分布式集群, 对外提供存储服务;

获取redis

下载 redis, 得到应该是源码, 先进行解压, 然后make即可;

redis 配置介绍

# redis 提供服务时绑定的本机网络地址,可以是多个满足多块网卡分别对外网内网的访问, 按需要改
bind 127.0.0.1
# 提供服务的端口, 供客户端连接
port 7000
# 启动redis服务时,进程pid存储位置
pidfile /opt/redis-cluster/7000/pid/redis_7000.pid
# redis 日志文件所在
logfile "/opt/redis-cluster/7000/pid/log.txt"
# 持久化文件存储目录
dir /opt/redis-cluster/7000/data/
# 开启集群模式
cluster-enabled yes
# 集群模式下的节点配置信息
cluster-config-file nodes.conf
# 集群中各节点间连接超时时间
cluster-node-timeout 5000
# 允许数据持久化追加
appendonly yes

创建集群目录

创建 redis-cluster文件夹并分别创建7000,7001....等文件夹,其他六个节点目录

Centos7搭建redis集群_第1张图片

开始配置

copy 原始的配置文件

分别在6个文件下创建data和pid文件夹

Centos7搭建redis集群_第2张图片

mkdir data

mkdir pid

为什么要创建上面的文件夹呢?

因为我在配置文件里面配置文件路径,不创建会启动报错

Centos7搭建redis集群_第3张图片

然后复制redis.conf到6个文件夹下,并作出相应的更改

最后在复制redis-cli redis-server到redis-cluster下

Centos7搭建redis集群_第4张图片

分别启动这个6个redis

redis-cluster文件下启动,注意启动必须加配置文件


    查询服务

ps -ef|grep redis-server

Centos7搭建redis集群_第5张图片

连接redis-cluster文件下

./redis-cli -h 127.0.0.1 -p 7000


虽然六个服务都起来了, 但这时他们之间还不知道彼此的存在, 无法组成集群提供服务

./redis-cli -c -p 7000
127.0.0.1:7000> cluster info
cluster_state:fail   //集群状态失败
cluster_slots_assigned:0 // hash 槽点分布也是失败的
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:1
cluster_size:0
cluster_current_epoch:0
cluster_my_epoch:0
cluster_stats_messages_sent:0
cluster_stats_messages_received:0
127.0.0.1:7000> 

Centos7搭建redis集群_第6张图片

接下来让我们用一个工具 ‘redis-trib.rb’ 将上面的六个节点连接起来

yum -y install ruby ruby-devel rubygems rpm-build

gem install redis

其中 gem install redis命令执行时出现了:

 redis requires Ruby version >= 2.2.2的报错,查了资料发现是Centos默认支持ruby到2.0.0,可gem 安装redis需要最低是2.2.2

解决办法是 先安装rvm,再把ruby版本提升

解决办法:

1、安装RVM(具体命令可以查看官网,Ruby官网地址 和 Ruby官网安装教程):

执行命令: gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB


2.执行:curl -sSL https://get.rvm.io | bash -s stable

Centos7搭建redis集群_第7张图片

3.执行:find / -name rvm -print

Centos7搭建redis集群_第8张图片

4.执行:source /usr/local/rvm/scripts/rvm


查看rvm库中已知的ruby版本:

5.执行: rvm list known

Centos7搭建redis集群_第9张图片

查看rvm库中已知的ruby版本:

执行:rvm install 2.4.1

Centos7搭建redis集群_第10张图片

使用一个ruby版本:

执行:rvm use 2.4.1

设置为默认版本

rvm use 2.4.1 --default

最后执行:gem install redis

Centos7搭建redis集群_第11张图片

执行src下执行redis-trib.rb

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

Centos7搭建redis集群_第12张图片

验证集群配置

上面显示已经成功组成集群了, 节点[7000,7001,7002]为三个master, 剩下的[7003,7004,7005]分别为前三者的复制节点, 并且可以看到16384个槽点被全部覆盖分布, 现在再查看下集群状态

启动客户端:

./redis-cli -c -h 127.0.0.1 -p 7000  (必须要加-c启动集群模式


执行:CLUSTER INFO

Centos7搭建redis集群_第13张图片

最后大功告成

随便存一个key,比如hello value为1


在7005客户端获取hello ,值为1


集群搭建完成!!

你可能感兴趣的:(redis)