redis 集群平台(Redis高可用集群)

redis 的集群主从模型是一种高可用的集群架构本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明,接下来我们就来聊聊关于redis 集群平台?以下内容大家不妨参考一二希望能帮到您!

redis 集群平台(Redis高可用集群)

redis 集群平台

redis 的集群主从模型是一种高可用的集群架构。本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明。

高可用集群搭建

集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

Redis 3.0 之后便支持集群。Redis 集群中内置了 16384 个哈希槽。Redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

所有节点之间彼此互联(PING-PONG机制),当超过半数的主机认为某台主机挂了,则该主机就是真的挂掉了,整个集群就不可用了。

若给集群中的每台主机分配多台从机。主机挂了,从机上位,依然能正常工作。但是若集群中超过半数的主机挂了,无论是否有从机,该集群也是不可用的。

搭建前的准备工作

搭建ruby环境

redis集群管理工具 redis-trib.rb 是依赖 ruby 环境。

[root@itdragon ~]# yum install ruby[root@itdragon ~]# yum install rubygems[root@itdragon ~]# gem install redis[root@itdragon ~]# cd redis-4.0.2/src/[root@itdragon src]# cp redis-trib.rb /usr/local/redis-4/bin/

第一步:安装 ruby 环境

第二步:安装 gem 软件包(gem是用来扩展或修改Ruby应用程序的)。参考地址:https://rubygems.org/gems/redis/versions/

第三步:在redis解压目录中找到 redis-trib.rb 文件,将其拷贝到启动redis服务的目录下,方便管理。

第一个参数:需要移动槽的个数,

  • 第二个参数:接受槽的节点ID,
  • 第三个参数:输入"all"表示从所有原节点中获取槽,
  • 第四个参数:输入"yes"开始移动槽到目标结点id
  • 第五步:查询集群节点信息,发现6006端口的主机已经分配了槽

    核心命令:

    ./redis-trib.rb add-node 新增主机ip:port 集群任意节点ip:port

    ./redis-trib.rb reshard 集群任意节点ip:port

    可能存在的问题

    [ERR] Sorry, can't connect to node 112.74.83.71:6006

    说明:新增的主机必须要是启动状态。

    添加从节点

    [root@itdragon bin]# cp redis6006.conf redis6007.conf[root@itdragon bin]# vim redis6007.conf [root@itdragon bin]# ./redis-server redis6007.conf[root@itdragon bin]# ./redis-trib.rb add-node --slave --master-id 916d26e9638dc51e168f32969da11e19c875f48f 112.74.83.71:6007 112.74.83.71:6006[root@itdragon bin]# ./redis-cli -h 112.74.83.71 -p 6000 cluster nodes80315a4dee2d0fa46b8ac722962567fc903e797a 112.74.83.71:6007@16007 slave 916d26e9638dc51e168f32969da11e19c875f48f 0 1512117377000 7 connected

    第一步:创建 redis6007.conf 的新主机,并启动Redis服务

    第二步:新增从机节点,在原来的命令上多了 --slave --master-id 主节点ID

    第三步:查询集群节点信息

    删除结点

    删除节点前,要确保该节点没有值,否则提示:is not empty! Reshard data away and try again. 若该节点有值,则需要把槽分配出去

    ./redis-trib.rb del-node 112.74.83.71:6006 916d26e9638dc51e168f32969da11e19c875f48f

    配置文件补充

    前几章Redis教程中介绍了以下配置

    1 开启Redis 的守护进程 :daemonize yes

    2 指定pid文件写入文件名 :pidfile /var/run/redis.pid

    3 指定Redis 端口:port 6379

    4 绑定的主机地址 :bind 127.0.0.1

    5 Redis持久化默认开启压缩数据:rdbcompression yes

    6 指定rdb文件名:dbfilename dump.rdb

    7 指定rdb文件位置:dir ./

    8 从机启动时,它会自动从master进行数据同步:slaveof < masterip> < masterport>

    9 开启aof持久化方式:appendonly yes

    10 指定aof文件名:appendfilename appendonly.aof

    11 触发aof快照机制:appendfsync everysec (no/always)

    本章节是Redis教程中的最后一章,把剩下的配置也一起说了吧

    1 设置客户端连接超时时间,0表示关闭 :timeout 300

    2 设置Redis日志级别,debug、verbose(默认)、notice、warning:loglevel verbose

    3 设置数据库的数量:databases 16

    4 设置Redis连接密码:requirepass foobared

    5 设置同一时间最大客户端连接数,默认无限制:maxclients 128

    6 指定Redis最大内存限制:maxmemory < bytes>

    7 指定是否启用虚拟内存机制:vm-enabled no

    8 指定虚拟内存文件路径:vm-swap-file /tmp/redis.swap

    9 指定包含其它的配置文件:include /path/to/local.conf

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页