以下操作基于redis3.X版本:
Redis集群存储原理:Redis 集群使用数据分片(sharding),而非一致性哈希(consistency hashing)来实现,一个 Redis 集群包含 16384 个哈希槽,数据库中的每个键都属于这 16384 个哈希槽的其中一个,集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽,其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和。

Redis使用redis-trib.rb脚本来进行集群的创建和管理操作,该脚本是用ruby编写的,需要先安装ruby支持:

1、yum install zlib ruby rubygems

2、安装ruby的Redis插件:gem install redis
例:
redis-trib.rb create --replicate 1 server1:6379 server1:6380 server2:6379 server2:6380 server3:6379 server3:6380
--replicate 1: 一个副本的意思,上面整个命令的意思是创建三主三从的集群
注:
为真正实现集群的高可用,集群中的每个节点应位于不同的服务器上
如果只是用3台服务器创建6节点的集群,还是避免不了单台服务器宕机或网络故障导致数据写入不可用,从而导致系统不可用

添加主节点:
1)、添加节点:redis-trib.rb add-node new_server:port exists_server:exists_port
2)、重新分配哈希槽:redis-trib.rb reshard exists_master_server:exists_master_port,根据提示进行操作
3)、查看集群状态:redis-cli -c -h server:port cluster nodes

添加从节点:
1)、添加节点:redis-trib.rb add-node new_server:port exists_server:exists_port
2)、指定主节点:redis-cli -c -h new_server:port -> cluster replicate master_uid
3)、查看集群状态:redis-cli -c -h server:port cluster nodes

集群状态的调整:
假如有3台服务器搭建6节点的集群,集群状态如下:
server1:6380 slaveof server1:6379
server2:6380 slaveof server3:6379
server3:6380 slaveof server2:6379
这种集群状态是不合理的,合理的状态是主从交叉配置,一定程度上提升了高可用

在线调整:server1:6380的主调整为server2:6379,server3:6380的主调整为server1:6379
1)、删除server1:6380和server3:6380节点:redis-trib.rb del-node server1:6380 uid,redis-trib.rb del-node server3:6380 uid
2)、停止server1:6380和server3:6380节点:redis-cli -c -h server:port shutdown
3)、清空server1:6380和server3:6380节点的集群配置文件 cat /dev/null > server{1,3}:6380.conf
4)、开启server1:6380和server3:6380节点:redis-server -c 6380.conf
5)、指定主节点:redis-trib.rb add-node --slave --master-id server2_uid server1:6380 server2:6379
redis-trib.rb add-node --slave --master-id server1_uid server3:6380 server1:6379
6)、查看集群状态:redis-cli -c -h server:port cluster nodes

调整后的集群状态如下:
server1:6380 slaveof server2:6379
server2:6380 slaveof server3:6379
server3:6380 slaveof server1:6379

redis3集群管理的更多相关文章

  1. 译:Google的大规模集群管理工具Borg(一)------ 用户视角的Borg特性

    概述 Google的Borg系统是一个集群管理工具,在它上面运行着成千上万的job,这些job来自许许多多不同的应用,并且跨越多个集群,而每个集群又由大量的机器构成. Borg通过组合准入控制,高效的 ...

  2. 运维利器-ClusterShell集群管理操作记录

    在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...

  3. elasticsearch集群管理工具head插件(转)

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearc ...

  4. zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网http://hadoop.apache.org/zookeeper/ 来获取,Zookee ...

  5. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  6. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  7. 2 weekend110的zookeeper的原理、特性、数据模型、节点、角色、顺序号、读写机制、保证、API接口、ACL、选举、 + 应用场景:统一命名服务、配置管理、集群管理、共享锁、队列管理

    在hadoop生态圈里,很多地方都需zookeeper. 启动的时候,都是普通的server,但在启动过程中,通过一个特定的选举机制,选出一个leader. 只运行在一台服务器上,适合测试环境:Zoo ...

  8. Redis核心解读:集群管理工具(Redis-sentinel)

    Redis核心解读:集群管理工具(Redis-sentinel) - Redis - TechTarget数据库 Redis核心解读:集群管理工具(Redis-sentinel)

  9. 大规模集群管理工具Borg

    Google的大规模集群管理工具Borg 概述 Google的Borg系统是一个集群管理工具,在它上面运行着成千上万的job,这些job来自许许多多不同的应用,并且跨越多个集群,而每个集群又由大量的机 ...

随机推荐

  1. Python十大装B语法

    https://blog.csdn.net/xufive/article/details/102856921

  2. Kubernetes 控制器之 Service 讲解(七)

    一.背景介绍 我们这里准备三台机器,一台master,两台node,采用kubeadm的方式进行安装的,安装过程大家可以参照我之前的博文. IP 角色 版本 192.168.1.200 master ...

  3. webpack 4.0改版问题

    4.0之后的打包方式: webpack --mode development src/index.js --output-filename app.js --output-path dist

  4. 安卓手机与iOS手机的区别

    安卓手机与iOS手机的区别 1.操作系统不同  安卓手机都是安卓操作系统:IOS手机都是iOS操作系统. 目前安卓最新的系统是Android 8.1:iOS版本最新的是iOS 11. 2.操作方式不同 ...

  5. [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

    [MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...

  6. Java开发笔记(一百一十八)AWT按钮

    前面介绍了如何通过AWT显示程序的窗口界面,那么要怎样在该窗口上面添加丰富多样的控件呢?注意Frame类是个窗口工具,它由窗楣(标题栏)与窗体(窗口主界面)两部分组成,故而Frame类只对整个窗口统筹 ...

  7. 存储库之MongoDB

    一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库(非关系型数据库) 1.易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库. 不采 ...

  8. mysql实践一:SQL基础

    mysql简介 mysql是有名的开放源代码关系型数据库.它最早是AB公司开源的,后来到Sun公司手中.之后Sun公司被Oracle公司收购,mysql就归Oracle所有.从此mysql走向商业化, ...

  9. beego 读取配置

    不知道是不是坑 官方文档 https://beego.me/docs/module/config.md . 解决办法: 1 导入 config "github.com/astaxie/bee ...

  10. leetcode整数反转

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出: 21 ...