Redis Cluster集群搭建

一.Redis Cluster集群

Redis Cluster是社区版推出的Redis分布式解决方案,主要解决Redis分布式方面的需求,比如遇到单机内存,并发和流量等瓶颈的时候,Redis cluster能起到比较好负载均衡目的。
为什么使用Redis Cluster呢?
为了在大流量访问下提供稳定的业务,集群化是存储的必然形态,未来的发展趋势肯定是云计算的大数据紧密集合,只有分布式架构才能满足需求。
集群描述:

  1. Twiter开发的twenmproxy
  2. 豌豆荚开发的codis
  3. redis官方推荐的redis-cluster
    redis集群搭建的方式有很多种,但是从redis3.0版本之后redis-cluster的集群,至少需要3个Master+3个Slave才能建立集群。 Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点和其他所有节点连接

在这里插入图片描述

Redis Cluster集群特点

  1. 所有的节点彼此互联,内部使用二进制协议优化传输速度和带宽。
  2. 节点的fail是通过集群种超过半数的节点检测失效时生效。
  3. redis Cluster把所有物理节点映射到0-16383 slot上,不一定是平均分配,cluster负责维护。
  4. 客户端与redis节点直连,不需要中间proxy层,客户端不需要连接集群的所有节点,连接集群中任何一个可用节点即可。
  5. Redis集群预分好16384个哈希槽,当需要在Redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,然后把结果对16384求余数,这样每一个key都会对应一个编号在0-16383之间的哈希槽,redis会根据节点数量大致均等的将哈希槽映射到的节点上。

Redis Cluster 容错
容错性,是指软件检测应用程序所运行的软件或硬件中发生错误中恢复的能力,通常可以从系统的可靠性、可用性、可测性等几个方面来衡量。

二、Redis Cluster集群搭建(本博文采用redis5.0)

官方文档:

  https://redis.io/topics/cluster-tutorial

我的本机已经安装好了Redis5.0
使用redis-server -v 可以查看redis的版本
在这里插入图片描述
如果你是在本机的话,你可能需要安装Vmware安装一个Linux系统环境,如果是服务器的那就可以直接省略。
如果你对在Linux 下安装Redis5不熟悉的话,你可以参考我这之前写的这篇文章在Linux环境下面安装Redis5.

https://editor.csdn.net/md/?articleId=85619487

1.创建节点安装目录

  cd /usr/local
  mkdir -p  redis-cluster
  cd redis-cluster
  mkdir data

在这里插入图片描述
进入节点目录

cd redis-cluster

创建6个节点目录

   mkdir 7000 7001 7002 7003 7004 7005

在这里插入图片描述
把redis.conf复制一份到7000

cp -rp /usr/local/redis/etc/redis-6379.conf /usr/local/redis-cluster/7000

进入7000目录,修改其配置文件

cd /usr/local/redis-cluster/7000
mv redis-6379.conf  redis.conf
vim redis.conf

修改后的Redis配置文件如下

daemonize yes  #开启守护进程模式
port 7000     #指定端口
bind 0.0.0.0  #不限制ip连接redis-server
logfile "7000.log" #指定日志文件名称
databases 16     #指定redis数据库的个数
dir "/usr/local/redis-cluster/data/"  #数据保存的位置
protected-mode no   #关闭保护模式,其他客户端可以redis-server
appendonly yes    #开启redis aof持久化存储
appendfsync everysec  #指定持久化存储模式
appendfilename appendonly-7000.aof  #持久化数据数据名称
cluster-enabled yes   #开启redis 集群模式
cluster-config-file nodes-7000.conf  #指定redis节点配置
cluster-node-timeout 5000    #配置redis超时时间
masterauth zq2020   #设置集群密码
requirepass zq2020  #设置redis密码
replica-server-stale-data yes  #意味着必须完成 master 同步之后才能做接下来的操作。可以防止数据不一致的情况

保存配置文件,退出
然后将7000下面的redis.conf 配置文件复制到7001

  cp -rp /usr/local/redis-cluster/7000/redis.conf  /usr/local/redis-cluster/7001

修改7001目录

然后修改7001下面的redis.conf,主要将上面的配置文件的端口号保存为对应目录的端口号
cd  /usr/local/redis-cluster/7001/
vi redis.conf
:%s/7000/7001/g    (按回车确认)
wq
保存退出

修改7002目录
然后将7000下面的redis.conf 配置文件复制到7002

  cp -rp /usr/local/redis-cluster/7000/redis.conf  /usr/local/redis-cluster/7002

修改7002目录

然后修改7002下面的redis.conf,主要将上面的配置文件的端口号保存为对应目录的端口号
cd  /usr/local/redis-cluster/7002/
vi redis.conf
:%s/7000/7002/g    (按回车确认)
wq
保存退出

然后将7000下面的redis.conf 配置文件复制到7003

  cp -rp /usr/local/redis-cluster/7000/redis.conf  /usr/local/redis-cluster/7003

修改7003目录

然后修改7003下面的redis.conf,主要将上面的配置文件的端口号保存为对应目录的端口号
cd  /usr/local/redis-cluster/7003/
vi redis.conf
:%s/7000/7003/g    (按回车确认)
wq
保存退出

然后将7000下面的redis.conf 配置文件复制到7004

  cp -rp /usr/local/redis-cluster/7000/redis.conf  /usr/local/redis-cluster/7004

修改7004目录

然后修改7001下面的redis.conf,主要将上面的配置文件的端口号保存为对应目录的端口号
cd  /usr/local/redis-cluster/7004/
vi redis.conf
:%s/7000/7004/g    (按回车确认)
wq
保存退出

然后将7000下面的redis.conf 配置文件复制到7005

  cp -rp /usr/local/redis-cluster/7000/redis.conf  /usr/local/redis-cluster/7005

修改7005目录

然后修改7001下面的redis.conf,主要将上面的配置文件的端口号保存为对应目录的端口号
cd  /usr/local/redis-cluster/7005/
vi redis.conf
:%s/7000/7005/g    (按回车确认)
wq
保存退出

将安装好的redisbin目录复制到redis-cluster目录下面

  cp -rp /usr/local/redis/bin /usr/local/redis-cluster/

分别启动6台redis-server

cd /usr/local/redis-cluster/bin
./redis-server   /usr/local/redis-cluster/7000/redis.conf
./redis-server  /usr/local/redis-cluster/7001/redis.conf
./redis-server  /usr/local/redis-cluster/7002/redis.conf
./redis-server  /usr/local/redis-cluster/7003/redis.conf
./redis-server  /usr/local/redis-cluster/7004/redis.conf
./redis-server  /usr/local/redis-cluster/7005/redis.conf

在这里插入图片描述
我们来查看一哈6台redis服务器服务是否已经启动

   ps -ef | grep redis

在这里插入图片描述
在Redis5中直接使用如下命令创建Redis-cluster的集群

 cd /usr/local/redis-cluster/bin

创建集群 -a指令指定创建redis集群的密码:

./redis-cli --cluster create -a zq2020 192.168.80.129:7000 192.168.80.129:7001 \
192.168.80.129:7002 192.168.80.129:7003 192.168.80.129:7004 192.168.80.129:7005 \
--cluster-replicas 1

在这里插入图片描述
直接输入 yes
在这里插入图片描述
这样表示redis-cluster集群创建成功
集群测试
cd /usr/local/usr/redis-cluster/bin
redis-cli -c -p 7000 -a zq2020
在这里插入图片描述
cluster nodes (查看集群节点)
在这里插入图片描述
info replication (查看当前节点的信息)
在这里插入图片描述
集群测试
在这里插入图片描述
如果集群中的ip配置错了,可以把/usr/local/redis-cluster/data
目录下面的文件删除掉重新配置加入集群就可以了

Redis集群关闭脚本
vim shutdown.sh

   ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020 7000 shutdown
  ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020  7001 shutdown
  ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020  7002 shutdown
  ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020  7003 shutdown
  ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020  7004 shutdown
  ./usr/local/redis-cluster/bin/redis-cli -c  -h 192.168.80.129 -p -a zq2020  7005 shutdown
chmod 777 shutdown.sh

在这里插入图片描述
Redis集群启动脚本:
vim start.sh

./redis-server   /usr/local/redis-cluster/7000/redis.conf
./redis-server  /usr/local/redis-cluster/7001/redis.conf
./redis-server  /usr/local/redis-cluster/7002/redis.conf
./redis-server  /usr/local/redis-cluster/7003/redis.conf
./redis-server  /usr/local/redis-cluster/7004/redis.conf
./redis-server  /usr/local/redis-cluster/7005/redis.conf

chmod 777 start.sh
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值