安装Redis 4.0.10集群

集群原理

redis-cluster架构图

redis-cluster架构图

  1. 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。

  2. 节点的fail是通过集群中超过半数的节点检测失效时才生效。

  3. 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

  4. redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

Redis集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

redis-cluster投票:容错

redis-cluster投票:容错

  1. 投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超时(cluster-node-timeout),认为当前master节点挂掉.

  2. 什么时候整个集群不可用(cluster_state:fail)?

    • 如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完整时进入fail状态. 
      • redis-3.0.0.rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败.
    • 如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态.

 一、安装Ruby和Remgem

     1、安装rvm 【Ruby Version Manager】

       到网站 https://rvm.io/ 看看安装命令提示

  a.【安装密钥服务器】执行 #gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB  

  b.【安装rvm】执行 #\curl -sSL https://get.rvm.io | bash -s stable  

               按照输出提示,执行 # source  /etc/profile.d/rvm.sh

  2、安装 ruby

    a. 执行 #rvm list known  // list一下可以安装的版本

    b. 执行 #rvm install [version]  //可以看上一条命令列出的ruby 版本 ,[version] 代表版本号,如 2.5.1

         c. 等待安装完成【快慢与网络有关】,安装完成查看版本,执行 #ruby -v

二、安装redis集群

  1.下载tar.gz

      http://www.redis.cn/

  2.上传tar.gz到linux

          #rz   选择tar.gz

       3.解压

          #tar -zxvf redis-4.0.10 -C [path]      path:解压路径

  4.编译

         #make

       5. 将src的以下文件拷贝到一个目录

          redis-benchmark

     redis-check-aof

          redis-check-rdb

          redis-cli

     redis-sentinel

     redis-server

     redis-trib.rb

     redis.conf  //这个是解压的根目录文件

   6. 修改配置文件 (去掉注解符#)

          cluster-enabled yes

          cluster-config-file nodes.conf

          cluster-node-timeout 15000

          bind 192.168.118.4 //绑定ip地址

     protected-mode no //关掉保护模式

        7.安装redis.x.x.x.gem

    执行 # gem install redis 【安装时间与网络有关,会卡一下】

         完成提示:  

    Fetching: redis-4.0.2.gem (100%)
    Successfully installed redis-4.0.2
    Parsing documentation for redis-4.0.2
    Installing ri documentation for redis-4.0.2
    Done installing documentation for redis after 2 seconds
    1 gem installed

  8、启动redis服务

         执行 #./redes-server ./redis.conf 

  9、设置集群

  执行 #./redis-trib.rb create --replicas 0 192.168.118.4:6379       --replicas 0  表示0个副本

       提示:

    >>> Creating cluster
    *** ERROR: Invalid configuration for cluster creation.
    *** Redis Cluster requires at least 3 master nodes.
    *** This is not possible with 1 nodes and 0 replicas per node.
    *** At least 3 nodes are required.

       意思就是redis至少要3个主节点【现在我只有一个,所以创建不成功】

      两种解决方案:

        A、伪集群,在一台机器上,拷贝第5步创建的目录,用不同的端口启动redis服务(在redis.conf  的 port 6379 修改,每个目录的配置修改不同的端口)

        B、真实集群,开机器【虚拟机】,拷贝第5步创建的目录到其他机器,修改bind (在redis.conf  的 bind 192.168.118.4 修改)

 

参考1:https://www.cnblogs.com/honger/p/5852005.html

1、使用虚拟机安装centos linux操作系统。

2、下载redis3.2.2.tar.gz,下载地址为http://redis.io/download。

2、安装gcc-c++,命令为yum -y install gcc-c++,因为安装redis的时候需要对它编译。

3、安装ruby环境,yum -y install ruby,yum -y install rubygems,这里的rubygems是gem文件的管理工具,安装gem需要用到它,如gem install xxx.gem,之所以安装这个是因为,redis集群管理工具redis-trib.rb依赖ruby环境,ruby是一种面向对象的语言。redis-trib.rb在redis-3.2.3.tar.gz源码包中。

4、下载gem文件https://rubygems.org/gems/redis/versions/3.3.1,点击右边的下载链接

5、安装redis,解压命令tar -zxvf redis-3.2.3.tar.gz,解压后进入解压后的文件夹redis-3.2.3,执行make命令,编译完后执行make install PREFIX=/usr/local/redis命令,prefix表示安装到/usr/local/redis,如果/usr/local/下没有redis文件夹,可先创建mkdir reids。

6、安装gem文件,gem install redis.3.3.1.gem

 

参考2:

Redis3伪分布式安装(1台Linux)

1.下载redis3的稳定版本,下载地址http://download.redis.io/releases/redis-3.0.7.tar.gz

2.上传redis-3.0.7.tar.gz到服务器

3.解压redis源码包

tar -zxvf redis-3.0.7.tar.gz -C /usr/local/src/

4.进入到源码包中,编译并安装redis

cd /usr/local/src/redis-3.0.7/

make && make install

5.在/usr/local/下创建一个redis目录,然后分别在/usr/local/redis目录创建6个文件夹7000,7001,7002,7003,7004,7005然后拷贝redis自带的配置文件redis.conf到这六个目录中

mkdir /usr/local/redis

mkdir /usr/local/redis/{7000,7001,7002,7003,7004,7005}

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7000

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7001

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7002

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7003

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7004

cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/7005

6.分别修改这六个目录中的配置文件

port 7000 #端口要与其所在的文件名一致

pidfile /var/run/redis-7000.pid  #pid要与其所在的文件名一致

daemonize yes

cluster-enabled yes

appendonly yes

 

cd /usr/local/redis/70007.分别进入到这六个目录启动redis进程

redis-server redis.conf

cd /usr/local/redis/7001

redis-server redis.conf

cd /usr/local/redis/7002

redis-server redis.conf

cd /usr/local/redis/7003

redis-server redis.conf

cd /usr/local/redis/7004

redis-server redis.conf

cd /usr/local/redis/7005

redis-server redis.conf

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值