Redis Cluster Unofficial

认证模式下的自动化工具
授权协议 GPL
开发语言 C/C++
所属分类 服务器软件、 集群/负载均衡
软件类型 开源软件
地区 国产
投 递 者 颜志业
操作系统 Linux
开源组织
适用人群 未知
 软件概览

目前redis 集群最火的是codis redis cluster (官方),但 codis 2.x 不支持密码。那么需要密码认证使用redis 集群的同学要仔细看了哦。

相信大家很多人已经使用了redis cluster,而且也肯定会用到核心应用,你是否考虑过如下问题?

1、redis cluster无密码,被改数据
2、redis cluster无密码,被flushall (你是否有要哭的冲动哈哈)
3、redis cluster无密码,数据在光天化日(你对用户不负责)
4、redis cluster无密码,你要担心各种被黑(日志好苦)

此时你是否需要密码认证?(我猜你想立刻马上),哈哈问题来了,你在创建集群和管理时是否遇到如下麻烦?

1、redis cluster 官方redis-trib.rb 不支持密码,你要手工用命令一个一个加入集群
2、添加减节点不方便
3、更重要的是你的分片工具不能用,你要抓狂么?
4、管理需要手工
5、你要疯掉

有没有办法解决呢?有,我相信很多公司已经会用认证方式来管理,只是目前我是没搜到相关资料。怎么办?

我有办法: 

1、原封不动的封装了redis cluster 集群添加减节点功能,并支持密码认证
2、针对对同台机器多master挂掉后集群不可用时,自动快速迁移槽位进行修复,保证程序可用
3、自动对新加节点迁移槽位
4、自动迁移槽位和数据给指定节点
5、自动根据当前结点master进行自动分片

你是不是已经心动了呢?那么接下来让你更想行动

自动分片

auto Resharding all slot to set master :

 ./redis_cluster_data_move -t reshard -h host -p port -P redis 密码

自动迁移分片

move slot:移动slot,此时槽位为空,也就是当cluster down 时,快速将16383槽位移走,不是涉及迁移数据,保证cluster 可用

 ./redis_cluster_data_move -t ms -h host -p port -d target_id-r 0-16383 -P redis 密码

自动迁移分片及数据 move data:

移动槽位及数据

./redis_cluster_data_move -t md -h source_host:port-target_host2:port2 -s source_id -d target_id -r 0-16383 -P redis 密码

自动删除节点

del redis node:

在集群host:port删除 node_id

./redis_cluster_data_move -t del -h host -p port -n node_id  -P redis 密码

自动添加 add redis node:添加节点

在集群source_host:port 添加目标target_host:target_port

./redis_cluster_data_move -t add -h source_host:source_port-target_host:target_port  -P redis 密码

add redis slave node:将节点添加为从

将host:port 添加为node_id 的从节点

./redis_cluster_data_move -t add_slave -h host -p port -n node_id -P redis 密码

update redis slave to master :

将slave手动升级为master ,在升级时使用将host port 上级为master 

./redis_cluster_data_move -u up -h host -p port  -P redis 密码

命令参数解释:

-t      任务类型
 -h      主机
 -p      端口
 -d      节点id
 -s      源节点id
 -r      槽位范围
 -n      节点id
 -P      redis 密码

使用中难免有BUG的地方,有问题可以发送内容到979835161@qq.com 邮箱

  • 原文地址:http://www.jianshu.com/p/22af55518f6d 初次在此做学习记录,如有不当之处,望联系本人。 一、开发环境 1.win7 2.redis 3.0 64位 3.ruby 环境 测试用到的所有安装包及我的测试配置 http://pan.baidu.com/s/1qXmO3fQ redis 安装 Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通

 相关资料
  • 例1 如前所述,上面的编译和链接没有问题。然而,在实际应用程序中,我有许多函数模板和许多枚举成员。因此,我试图通过将成员分组到一个新类中来使我的生活变得更轻松,这个类本身依赖于模板参数,并为每个枚举值显式地实例化该类。 例2 编辑:用户2B-T通过https://www.onlinegdb.com/hygr7w0fv_提供了这些示例,供人们进行实验。

  • 自动化所有测试流程并对其进行配置以实现速度和灵活性至关重要。此过程称为DevOps自动化。 维护庞大的IT基础架构的大型DevOps团队面临的困难可以简要分为六个不同的类别。 基建自动化 配置管理 部署自动化 绩效管理 日志管理 监测 下面我们来看看每个类别中的一些工具以及它们如何解决痛点 - 1. 基建自动化 亚马逊网络服务(AWS):作为云服务,无需实际存在于数据中心。此外,它们易于按需扩展。

  • 我试图推出iOS应用程序,这是开发和建立在Xcode版本7.3.1(7D1014)使用Appium自动化工具。为了启动ios应用程序,我在IOS模拟器上安装了苹果公司的根证书,方法是在模拟器上拖放证书文件。我能够手动启动应用程序,但使用appium自动化工具启动应用程序时出现问题。IOS应用程序启动时失败,我得到"nsurlerrordomer1012 iphone"。下面我附上了简单的代码来设置

  • 自动格式化 控制台允许您自动格式化复杂的请求。为此,请将光标置于您想格式化的请求上,并从操作菜单中选择自动缩进: 图 6. 自动缩进一个请求 控制台将调整请求的 JSON 体,调整之后的请求如下所示: 图 7. 格式化的请求 如果在已完全格式化的请求上选择自动缩进,控制台将把每个文档的请求体折叠到一行,这在使用 Elasticsearch 的批量 API 的时候会非常方便。 图 8. 每个文档一行

  • 我有对象类,这是映射到Oracle数据库表。在这个类中,一列有一个默认值在数据库中。我用了这个:@列(名称="FK_STATUS", nullable=假,列定义="int默认值1")在数据库中的列类型是数字。但我得到"不能插入null在FK_status"错误。请帮助。

  • 用于实现简便部署的模式 Java™ 部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的 让开发自动化 系列文章的第 1 部分。在本文中,自动化专家 Paul Duvall 将介绍用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。 软件部署常常被视为不可避免的麻烦,可以在遇到它时应付一下,以后就不用理会了。但

  • 更多一键式部署模式 Java™部署常常很混乱,容易出现错误,需要许多手工操作,这会延误向用户交付软件的时间。本文是分两部分的让开发自动化系列文章的第 2 部分。在本文中,自动化专家 Paul Duvall 进一步补充用于开发可靠、可重复且一致的部署流程的一些关键模式,帮助读者为 Java 应用程序生成简便的部署。 关于本系列 作为开发人员,我们致力于为用户自动化流程;但许多开发人员疏忽了自动化我们

  • 问题内容: 我们正在Symfony 2中从头开始构建一个业务应用程序,我在用户注册流程上遇到了一些麻烦:用户创建帐户后,应该使用这些凭据自动登录。立即被迫再次提供其凭据。 任何人都对此有任何经验,或者能够为我指明正确的方向? 问题答案: Symfony 4.0 此过程尚未从symfony 3更改为4,但是这里是使用新推荐的AbstractController的示例。无论是和服务注册在父方法,所以你