redis3.0集群搭建

Posted lollong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis3.0集群搭建相关的知识,希望对你有一定的参考价值。

参考:https://blog.csdn.net/qq_42815754/article/details/82912130

一.redis基本配置

  1.安装并启动六个redis

    启动需要用./redis-server ../redis.conf  的方式启动才会采用配置文件

  2.修改redis.conf中的:

    daemonize  yes

      表示以后台模式启动

    cluster-enabled  yes

      表示开启集群模式

    protected-mode no

      表示关闭保护模式

    bind 0.0.0.0

      这里修改为0.0.0.0表示所有ip都可以访问这个redis

 

二.集群简介

  1.redis集群是去中心化的,没有中心节点

  2.redis节点内部通信采用 PING-PONG机制,也就是在redis客户端输入PING发送给服务端,如果服务端还活着就会回复一个PONG,以此来判断节点是

      否还在正常工作.

  3.判断节点是否还可用,redis集群有一个投票容错机制,只有超半数节点认为某个节点不可用,集群才会认为这个节点不可用

  4.为保证redis集群高可用,每个redis节点都要配一个从redis,主从之间采用Goossip协议实现异步复制,redis集群不能保证数据强一致

  5.如果集群中一个节点失效了,而且没有从节点可用,那么这个集群就失效了,因为redis采用的是数据分区中的按数据范围分区的方式,其他

    常见数据分区方式还有哈希取余,按数据量,一致性哈希等。按范围分区的方式解决了在增删节点的时候缓存集体失效的问题。具体实现就是

    把16384个slot分布到各个节点上,对要存的数据的key用crc16算法计算,得出结果再对16384取余,这样来确定要存储到哪个节点上。

    

三.开启集群

  1.开启集群可以使用官方自带的ruby脚本,因为是ruby语言,所以需要先安装ruby环境,如果直接用yum install ruby则安装的ruby版本是很低的,而

    我们这脚本是需要比较高的ruby版本所以用如下方法安装

    更换yum源来安装

    yum install centos-release-scl-rh    //安装源

    yum install rh-ruby23  -y    //直接yum安装即可  

     scl  enable  rh-ruby23 bash    //使用rh-rubu23创建一个bash会话环境

    ruby -v    //查看安装版本

  2.之后我们还需要安装一个ruby插件https://rubygems.org/gems/redis/versions/3.0.0

    根据redis版本下载,之后使用gem install redis-3.0.0.gem命令安装下载的插件

    安装完成后就可以正式启动集群了,redis自带的rubu脚本在redis的src目录下,使用如下命令开启集群,前三个是主节点,后三个是从节点,

    create --replicas 1代表从节点只有一个

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

  3.最基本集群命令

    1.redis-cli -c -p 6382 -h 192.168.10.12 以集群模式连接redis

    2.cluster info 查看集群信息

    3.cluster nodes 查看集群节点

    4.cluster meet <ip> <port> 添加节点到集群中

    5.cluster forget <node_id> :从集群中移除 node_id 指定的节点,其中node_id就是hash值

以上是关于redis3.0集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Redis3.0 集群搭建

redis3.0.6 集群搭建

redis3.0集群搭建

CentOS完美搭建Redis3.0集群并附测试

redis 集群环境搭建和工作原理

Linux下Redis集群环境的搭建