redis集群搭建

redis集群搭建

redis集群三种模式

主从模式 可以实现读写分离,数据备份。但是并不是「高可用」的
哨兵模式 可以看做是主从模式的「高可用」版本,其引入了Sentinel对整个Redis服务集群进行监控。但是由于只有一个主节点,因此仍然有写入瓶颈。
Cluster模式 不仅提供了高可用的手段,同时数据是分片保存在各个节点中的,可以支持高并发的写入与读取。实现也是其中最复杂的。

我这里采用第三种,也就是Cluster模式搭建redis集群。

redis cluster集群搭建

1、下载上传redis包到服务器,我这里使用的是redis-3.2.8版本

2、解压文件到指定目录并编译

tar -zxf redis-3.2.8.tar.gz 
cd /opt/youngTest/redis/redis-3.2.8/
make
make install

3、创建集群

##sh
mkdir /opt/youngTest/redis -p
cd /opt/youngTest/redis
mkdir cluster 

make
make install
tar -zxf redis-3.2.8.tar.gz 
cd redis-3.2.8/

cp -r /opt/youngTest/redis/cluster/redis.conf

:%s/6379/8001/g


cd /data/redis/cluster
redis-server ./7001redis.conf
redis-server ./7002/redis.conf
redis-server ./7003/redis.conf

cd /data/redis/cluster
redis-server ./7004/redis.conf
redis-server ./7005/redis.conf
redis-server ./7006/redis.conf


./redis-trib.rb  create  --replicas 1 172.25.2.6:8001 172.25.2.7:8004 172.25.2.6:8002 172.25.2.7:8005 172.25.2.6:8003 172.25.2.7:8006

4、配置文件

port 8001
daemonize yes
pidfile /var/run/redis_8001.pid
cluster-enabled yes
cluster-config-file nodes-8001.conf
cluster-node-timeout 5000
appendonly no
dbfilename dump-8001.rdb
bind 172.25.2.3
cluster-require-full-coverage no

参考:

Redis cluster tutorial – Redis

other:

一、Redis Cluster(Redis集群)简介

  • redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群。
  • redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;
  • redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例;
  • 为了实现集群的高可用,即判断节点是否健康(能否正常使用),redis-cluster有这么一个投票容错机制:如果集群中超过半数的节点投票认为某个节点挂了,那么这个节点就挂了(fail)。这是判断节点是否挂了的方法;
  • 那么如何判断集群是否挂了呢? -> 如果集群中任意一个节点挂了,而且该节点没有从节点(备份节点),那么这个集群就挂了。这是判断集群是否挂了的方法;
  • 那么为什么任意一个节点挂了(没有从节点)这个集群就挂了呢? -> 因为集群内置了16384个slot(哈希槽),并且把所有的物理节点映射到了这16384[0-16383]个slot上,或者说把这些slot均等的分配给了各个节点。当需要在Redis集群存放一个数据(key-value)时,redis会先对这个key进行crc16算法,然后得到一个结果。再把这个结果对16384进行求余,这个余数会对应[0-16383]其中一个槽,进而决定key-value存储到哪个节点中。所以一旦某个节点挂了,该节点对应的slot就无法使用,那么就会导致集群无法正常工作。
  • 综上所述,每个Redis集群理论上最多可以有16384个节点。

二、集群搭建需要的环境

  • Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
  • 要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一行1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值