Redis集群搭建

Redis下载地址

  1. 新建redis-cluster目录
  2. 执行wget http://download.redis.io/releases/redis-5.0.5.tar.gz下载redis
  3. 执行tar xzf redis-5.0.5.tar.gz解压
  4. 进入redis-5.0.5目录下执行make编译
  5. 进入/usr/local/redis-cluster下查看目录
    image

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 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功,并且redis给我们提供了快速搭建脚本,执行utils/create-cluster/ 目录下的create-cluster脚本 就可以快速搭建,该脚本提供以下几个命令供我们使用

echo "Usage: $0 [start|create|stop|watch|tail|clean]"
echo "start       -- Launch Redis Cluster instances."   创建redis集群实例
echo "create      -- Create a cluster using redis-cli --cluster create."  搭建redis集群
echo "stop        -- Stop Redis Cluster instances." 停止redis集群实例
echo "watch       -- Show CLUSTER NODES output (first 30 lines) of first node."
echo "tail <id>   -- Run tail -f of instance at base port + ID."
echo "clean       -- Remove all instances data, logs, configs." 删除生成的日志,配置,数据文件
echo "clean-logs  -- Remove just instances logs." 只删除日志

要想外部服务器访问到我们搭建的集群,我们需要对脚本修改一下,进入/usr/local/redis-cluster/redis-5.0.5/utils/create-cluster目录下,执行vim create-cluster

  1. start部分增加如下配置:
  • --bind 指定我们要绑定的ip(服务器ip)
  • --requirepass 指定我们的密码
  • --protected-mode no 关闭安全模式(外部应用可以连接到redis)

由于搭建环境的机子内存有点小,所有添加了限制内存的语句

--bind 192.168.3.86 --requirepass 12345 --protected-mode no

image

  1. create部分修改如下配置:
    127.0.0.1IP地址修改为服务器地址或开放所有地址0.0.0.0
    添加-a 12345密码设置

image

  1. stop部分修改如下配置:
    添加-h IP地址-a 12345密码设置

image

4.执行./create-cluster start启动集群

image

5.执行./create-cluster create开启集群

image

集群测试

链接集群语句

../../src/redis-cli -h localhost -p 30003 -a 12345 -c

在30002中设置key后可以在30001获取
image
image

集群操作

  1. 添加主节点,从节点
  2. 删除节点:重新分配槽,移除节点

redis 5.0中使用 redis-cli 添加cluster node 并 reshard
Redis cluster集群:原理及搭建

参考博客

Redis入门(适合新手)
redis集群搭建(非常详细,适合新手)
redis 5.0.5 5分钟搭建redis集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值