redis3.0集群搭建
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
tar redis-3.0.4.tar.gz
cd redis-3.0.4
make
make install
mv redis-3.0.4 /app/sinova/redis
cd /app/sinova/redis
mkdir bin,conf,rdb,log
mv redis.conf sentinel.conf conf
find -maxdepth 1 -type f -delete
cd src
mv mkreleasehdr.sh redis-benchmark redis-sentinel redis-server redis-cli redis-check-aof redis-check-dump redis-trib.rb ../bin/
mv redis-3.0.4 /app/sinova/redis
cp -r redis redis2
二、配置redis
redis.conf修改内容:
daemonize yes
pidfile /app/sinova/redis/log/redis.pid
port 7000 #不同实例用不同端口
logfile "/app/sinova/redis/log/redis.log" #不同实例定义不同路径
dir /app/sinova/redis/rdb #定义dump.rdb和appendonly.aof文件存放路径
appendonly yes #开启AOF持久化
cluster-enabled yes
cluster-config-file nodes-7000.conf #不同实例需修改端口
cluster-node-timeout 5000
/app/sinova/redis/bin/redis-server /app/sinova/redis/conf/redis.conf
/app/sinova/redis2/bin/redis-server /app/sinova/redis2/conf/redis.conf
/app/sinova/redis/bin/redis-trib.rb create --replicas 1 192.168.116.130:7000 192.168.116.129:7001 192.168.116.131:7002 192.168.116.130:7003 192.168.116.129:7004 192.168.116.131:7005
执行以上命令后redis-trib会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中。



Connecting to node 192.168.116.131:7005: OK
Connecting to node 192.168.116.131:7002: OK
Connecting to node 192.168.116.130:7000: OK
Connecting to node 192.168.116.129:7001: OK
Connecting to node 192.168.116.130:7003: OK
Connecting to node 192.168.116.129:7004: OK
>>> Performing Cluster Check (using node 192.168.116.131:7005)
S: 93752d84dc8dd430a439644f0dd3288ff3b50a49 192.168.116.131:7005
slots: (0 slots) slave
replicates 794da90978e2bd501eb2a45e1f66458d9a4c70cf
M: 7c075df721b8e7524e4732174307ea724e4d49d0 192.168.116.131:7002
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 7bef1e428364f2323a300fc47553889117c6e2fa 192.168.116.130:7000
slots:10923-16383 (5461 slots) master
1 additional replica(s)
M: 794da90978e2bd501eb2a45e1f66458d9a4c70cf 192.168.116.129:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 8c36b569793c1580ae1fb6e7c198ea5d291abb56 192.168.116.130:7003
slots: (0 slots) slave
replicates 7bef1e428364f2323a300fc47553889117c6e2fa
S: c632d284b9ab38100984d15fa65c005ca12bb438 192.168.116.129:7004
slots: (0 slots) slave
replicates 7c075df721b8e7524e4732174307ea724e4d49d0
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.








当机器不够用了怎么办?就需要扩容集群了。根据新添加节点的种类, 我们需要用两种方法来将新节点添加到集群里面:
1>如果要添加的新节点是一个主节点, 那么我们需要创建一个空节点(empty node), 然后将某些哈希桶移动到这个空节点里面。
2>如果要添加的新节点是一个从节点, 那么我们需要将这个新节点设置为集群中某个节点的复制品(replica)。
接下来会对以上两种情况进行测试, 首先测试主节点的添加方法, 然后再测试从节点的添加方法。
无论添加的是那种节点, 第一步要做的总是添加一个空节点。
我们可以继续使用之前启动 192.168.116.130:7000 、 192.168.116.129:7001 等节点的方法, 创建一个端口号为 7006的新节点, 使用的配置文件也和之前一样, 只是记得要将配置中的端口号改为 7000 。
以下是启动端口号为 7006 的新节点的详细步骤:
在192.168.116.130这台服务器上安装一个新的redis实例,端口使用7006。
使用命令 ../../redis-server redis.conf 启动节点。
如果一切正常, 那么节点应该会正确地启动。
add-node
表示我们要让 redis-trib
将一个节点添加到集群里面, addnode
之后跟着的是新节点的 IP 地址和端口号, 再之后跟着的是集群中任意一个已存在节点的 IP 地址和端口号, 这里我们使用的是 192.168.116.131:7005
。
从上面的截图可以看到新节点现在已经连接上了集群, 成为集群的一份子, 并且可以对客户端的命令请求进行转向了, 但是和其他主节点相比, 新节点还有两点区别:
1>新节点没有包含任何数据, 因为它没有包含任何哈希桶。
2>尽管新节点没有包含任何哈希桶, 但它仍然是一个主节点, 所以在集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中。
redis-trib
程序, 将集群中的某些哈希桶移动到新节点里面, 新节点就会成为真正的主节点了。redis-trib
就会自动找到集群中的其他节点。redis-trib
会向你询问重新分片的源节点(source node), 也即是, 要从哪个节点中取出 4000 个哈希槽, 并将这些槽移动到目标节点上面。如果我们不打算从特定的节点上取出指定数量的哈希槽, 那么可以向 redis-trib
输入 all
, 这样的话, 集群中的所有主节点都会成为源节点, redis-trib
将从各个源节点中各取出一部分哈希槽, 凑够 4000 个, 然后移动到目标节点上面.yes
并使用按下回车之后, redis-trib
就会正式开始执行重新分片操作, 将指定的哈希槽从源节点一个个地移动到目标节点上面


add-node
表示我们要让 redis-trib
将一个节点添加到集群里面, addnode
之后跟着的是新节点的 IP 地址和端口号, 再之后跟着的是集群中任意一个已存在节点的 IP 地址和端口号, 这里我们使用的是 192.168.116.131:7005
。



其中8d9502f97b416a566e0de1e33f665b7358fe807f 是主节点的ID。
验证7006和7007端口的redis实否为主从关系:
在新的从节点上面get 数据:
redis3.0集群搭建的更多相关文章
- Centos7:Redis3.0集群搭建
Redis集群中至少应该有三个节点.要保证集群的高可用,需要每个节点有一个备份机.Redis集群至少需要6台服务器. 搭建伪分布式.可以使用一台虚拟机运行6个redis实例. 修改redis的端口号7 ...
- Centos7 Redis3.0 集群搭建备忘
(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:7000 127.0.0. ...
- Redis 3.0 集群搭建
Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...
- redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
- Redis 5.0 集群搭建
Redis 5.0 集群搭建 单机版的 Redis 搭建 https://www.jianshu.com/p/b68e68bbd725 /usr/local/目录 mkdir redis-cluste ...
- Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)
现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...
- Redis3.0集群方案分析
在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底 ...
- Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享
文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...
- redis5.0.0集群搭建【实战经历】
redis集群搭建 作者:陈土锋 时间:2020年6月2日 目录 一.环境介绍... 1 1.机器准备... 1 2.关闭防护墙和selinux. 1 3.时间同步... 1 二.Redis Clus ...
随机推荐
- svn项目冲突时显示无法加载项目的解决方法
1.无法加载的项目会显示成灰色.这是右键点击编辑 打开后去掉乱字符. 2.完成后会有红色的叹号 这是右键 找到解决冲突即可 然后提交
- javascript 封装 构造函数继承 非构造函数继承
1 封装 把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象 1.1 简单封装:var cat1 = { ...
- Android手势解锁, 九宫格解锁
给大家介绍一个很好用的手势解锁控件ShapleLocker, 废话不多先上效果图: 这是一个第三方库, 可自己根据UI需求替换图标: 圆圈, 小箭头等等.. github地址: http://pane ...
- Oracle RAC OCR 和 VotingDisk 的备份与恢复
一:Voting DiskVoting Disk 这个文件主要用于记录节点成员状态,在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除.Voting disk使用的是 ...
- Struts2多文件上传
第一步:首先创建一个多文件上传的页面 <html> <head> <meta http-equiv="Content-Type" content=&q ...
- SQL Server 索引和视图【转】
Ø 索引 1. 什么是索引 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度. 2. 索引分类 数据库中索引主要分为两类:聚集索引和非聚集索引.SQL Serv ...
- EA UML 建模——类图
Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关 ...
- PHP发送AT指令
需求: 发送短信到用户输入手机, 要求可以自定义信息内容 问题: 没有电信猫, 使用免费api接口无法自定义短信内容 解决方案: 通过4G网卡, 接在服务器上, 通过AT指令操作网卡, 发送短信 查阅 ...
- Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)
一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...
- Open judge 07和为给定数
总时间限制: 1000ms 内存限制: 65536kB 传送门 类似的题传送门 描述 给出若干个整数,询问其中是否有一对数的和等于给定的数. 输入 共三行: 第一行是整数n(0 < n < ...