开发者社区> 艾贺> 正文

Redis Cluster集群快速搭建

简介: 想在3分钟以内搭建一个Redis Cluster集群吗?说3分钟可能有点久,实际上好像不到一分钟就完成了Redis Cluster集群的搭建。 介绍 redis cluster是官方提供的一种集群方案,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。
+关注继续查看

想在3分钟以内搭建一个Redis Cluster集群吗?说3分钟可能有点久,实际上好像不到一分钟就完成了Redis Cluster集群的搭建。

介绍

redis cluster是官方提供的一种集群方案,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。

结构特点:

  1. 所有节点彼此互联,redis服务器启动两个端口,一个为服务客户端的端口,另外一个为内部通讯端口,内部通讯端口比服务端口大10000. 比如:6379与16379
  2. 超过半数及以上的节点时,节点才会失效
  3. 客户端与redis服务器直连,无代理服务器,只需连接到集群中的任何一个节点即可
  4. Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。

快速搭建

今天看官方文档的时候发现redis源码包中还存在一个redis-cluster的shell脚本,可以快速创建集群。

img_2835a62ee24a6f4ddb593786ec2ceda3.png
image.png

创建

cd utils/create-cluster
gem install redis
./create-cluster start
./create-cluster create
img_db0020bab2972b06a5e15686e343cb91.png
image.png

是不是很快就创建了redis集群

内部实现

create-cluster利用的是使用redis-server命令行指定配置参数让redis-server启动在不同的端口。
要想搭建redis-cluster集群,我们需要的最少配置文件为

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

create-cluster启动实例的shell脚本。

PORT=30000
TIMEOUT=2000
NODES=6
REPLICAS=1
ENDPORT=$((PORT+NODES))


if [ "$1" == "start" ]
then
    while [ $((PORT < ENDPORT)) != "0" ]; do
        PORT=$((PORT+1))
        echo "Starting $PORT"
        ../../src/redis-server --port $PORT --cluster-enabled yes --cluster-config-file nodes-${PORT}.conf --cluster-node-timeout $TIMEOUT --appendonly yes --appendfilename appendonly-${PORT}.aof --dbfilename dump-${PORT}.rdb --logfile ${PORT}.log --daemonize yes
    done
    exit 0
fi

if [ "$1" == "create" ]
then
    HOSTS=""
    while [ $((PORT < ENDPORT)) != "0" ]; do
        PORT=$((PORT+1))
        HOSTS="$HOSTS 127.0.0.1:$PORT"
    done
    ../../src/redis-trib.rb create --replicas $REPLICAS $HOSTS
    exit 0
fi

可以看出来创建集群的脚本本质上也是命令行指定配置参数,创建脚本则是利用redis-trib.rb

最后

这里简单的演示下redis集群的快速搭建,先明白集群搭建,后面详细说明其实现原理,Redis集群的搭建非常简单,深入比较难。

参考

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
redis集群搭建
  Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。
2189 0
redis cluster搭建
从redis官网看最新稳定版本已经更新到3.2.6了,我这里补充一篇以前3.2.0的集群配置。说明: redis从3.0版本以后开始支持cluster模式,原理和功能大家可以上网查,对于运维人员来说最重要的去掉了代理层、避免出现单点故障,但是redis cluster至少需要三个主节点和三个从节点。
902 0
Windows 10 搭建Redis 集群环境
Windows 10 搭建Redis 集群环境 1、下载最新的redis安装包:redis下载地址 2.解压redis压缩包后,将redis.conf 文件进行修改,修改关键代码如下: [html] view plain copy port 7005 cluster-enabled yes cluster-config-file nodes.
1567 0
sentinel搭建redis集群经验总结
一、protected-mode默认情况下,redis node和sentinel的protected-mode都是yes,在搭建集群时,若想从远程连接redis集群,需要将redis node和sentinel的protected-mode修改为no,若只修改redis node,从远程连接sentinel后,依然是无法正常使用的,且sentinel的配置文件中没有protected-mode配置项,需要手工添加。
760 0
Redis Cluster集群应用与原理(上)
Redis Cluster集群应用与原理(上)
42 0
+关注
艾贺
专注开发,架构知识
327
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载