Redis【第二篇】集群搭建
第一步:准备
1.安装包
ruby-2.4.0.tar.gz
rubygems-2.6.10.tgz
zlib-1.2.11.tar.gz
redis-3.3.2.gem
2. 架构:
| 名称 | IP | 端口 | 节点属性 |
| redisA | 192.168.6.128 | 6379 | 主节点 |
| redisB | 192.168.6.128 | 9379 | 从节点 |
| redisC | 192.168.6.129 | 6379 | 主节点 |
| redisD | 192.168.6.129 | 9379 | 从节点 |
| redisE | 192.168.6.130 | 6379 | 主节点 |
| redisF | 192.168.6.130 | 9379 | 从节点 |
2. 实例 redis 安装
参照 Redis【第一篇】安装 来安装架构中的实例。
第二步:安装Ruby
1. 版本
ruby-2.4.0
2. 安装
# tar zxvf ruby-2.4..tar.gz
# cd ruby-2.4.
# ./configure prefix=/usr/local/ruby
# make
# make install
3. 设置环境变量
# echo 'export PATH="$PATH:/usr/local/ruby/bin"' >> /etc/profile
# source /etc/profile
4. 测试
# ruby -v

第三步:安装 rubygems
1. 版本
rubygems-2.6.10
2. 安装
# tar zxvf rubygems-2.6..tgz
# cd rubygems-2.6.
# ruby setup.rb
3. 测试
# gem -v

第四步:安装zlib
1. 版本
zlib-1.2.11.tar.gz
2. 安装
# tar zxvf zlib-1.2..tar.gz
# cd zlib-1.2.
# ./configure --prefix=/usr/local/zlib
# make
# make install
第五步:安装 ruby-zlib
1. 版本
为 ruby-2.4.0 包中的文件。
2. 安装
# cd ruby-2.4./ext/zlib
# ruby ./extconf.rb --with-zlib-dir=/usr/local/zlib
# make
# make install
返回信息:

第六步:安装 redis-3.3.2.gem
1. 版本
redis-3.3.2.gem
2. 安装
gem install -l redis-3.3.2.gem
返回信息:

第七步:启动
1. 分别修改各个 redis 的配置文件
# cp redis.conf redis-cluster.conf
# vi redis-cluster.conf
编辑配置文件:
1)更改的内容:
daemonize no 更改为 daemonize yes
logfile "" 更改为 logfile "/root/redisA/logs/redis.log" # 需要创建 logs 目录
dir ./ 更改为 dir /root/redisA/data #需要创建 data 目录
appendonly no 更改为 appendonly yes
2)去掉注释的内容
# cluster-enabled yes
# cluster-config-file nodes-.conf
# cluster-node-timeout
# cluster-slave-validity-factor
# cluster-migration-barrier
# cluster-require-full-coverage yes
2. 分别启动各个 redis 服务
# ./src/redis-server redis-cluster.conf
第八步:测试
1. 查看进程
# ps -ef|grep redis|grep -v grep

2. 查看日志

第九步:建立集群
1. 执行命令
# ./src/redis-trib.rb create --replicas 192.168.6.128: 192.168.6.128: 192.168.6.129: 192.168.6.129: 192.168.6.130: 192.168.6.130:
--replicas 1 表示每个主节点下有一个从节点。
默认是前三个为主节点,后三个为从节点。
默认情况下不能从 slaves 读取数据,但建立连接后,执行一次命令 READONLY,该 slaves 即可读取数据。
2. 返回信息
>>> Creating cluster
Connecting to node 192.168.6.128:: OK
Connecting to node 192.168.6.128:: OK
Connecting to node 192.168.6.129:: OK
Connecting to node 192.168.6.129:: OK
Connecting to node 192.168.6.130:: OK
Connecting to node 192.168.6.130:: OK
>>> Performing hash slots allocation on nodes...
Using masters:
192.168.6.128:
192.168.6.129:
192.168.6.130:
Adding replica 192.168.6.129: to 192.168.6.128:
Adding replica 192.168.6.128: to 192.168.6.129:
Adding replica 192.168.6.130: to 192.168.6.130:
M: 31f6b90cfe190d94f39bef42449bdb7efe1b85b0 192.168.6.128:
slots:- ( slots) master
S: 02c6f0321ebbaf52fe42dd372e5daf179ca77853 192.168.6.128:
replicates 90fec8236d68d9e89262a1ae101056fa1da6df25
M: 90fec8236d68d9e89262a1ae101056fa1da6df25 192.168.6.129:
slots:- ( slots) master
S: 5cf4bd75f93514e1895f8bb5bb7042ae23f277e7 192.168.6.129:
replicates 31f6b90cfe190d94f39bef42449bdb7efe1b85b0
M: 82889edd96156daa109e84868ceda24a0272ee82 192.168.6.130:
slots:- ( slots) master
S: 9e238a85863ea02fc534fc870db4f47fd79b9ef6 192.168.6.130:
replicates 82889edd96156daa109e84868ceda24a0272ee82
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
>>> Performing Cluster Check (using node 192.168.6.128:)
M: 31f6b90cfe190d94f39bef42449bdb7efe1b85b0 192.168.6.128:
slots:- ( slots) master
additional replica(s)
M: 90fec8236d68d9e89262a1ae101056fa1da6df25 192.168.6.129:
slots:- ( slots) master
additional replica(s)
S: 5cf4bd75f93514e1895f8bb5bb7042ae23f277e7 192.168.6.129:
slots: ( slots) slave
replicates 31f6b90cfe190d94f39bef42449bdb7efe1b85b0
S: 9e238a85863ea02fc534fc870db4f47fd79b9ef6 192.168.6.130:
slots: ( slots) slave
replicates 82889edd96156daa109e84868ceda24a0272ee82
M: 82889edd96156daa109e84868ceda24a0272ee82 192.168.6.130:
slots:- ( slots) master
additional replica(s)
S: 02c6f0321ebbaf52fe42dd372e5daf179ca77853 192.168.6.128:
slots: ( slots) slave
replicates 90fec8236d68d9e89262a1ae101056fa1da6df25
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All slots covered.
集群创建成功!
第十步:测试
1. 客户端连接
# ./src/redis-cli -c -h 192.168.6.128 -p
连接成功则返回:

2. 存取数据
1)连接192.168.6.128的6379端口,并存入数据

2)连接192.168.6.130的9379端口,并读取数据

此时,redis 的三主三从集群已搭建成功!
Redis【第二篇】集群搭建的更多相关文章
- Redis 3.0 集群搭建
Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...
- Redis 5.0 集群搭建
Redis 5.0 集群搭建 单机版的 Redis 搭建 https://www.jianshu.com/p/b68e68bbd725 /usr/local/目录 mkdir redis-cluste ...
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- 超详细的 Redis Cluster 官方集群搭建指南
今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...
- redis整合Spring集群搭建及业务中的使用
1.redis安装 Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到li ...
- linux Redis 5.0集群搭建
文档结构如下: Redis cluster 是redis的分布式解决方案,在3.0版本正式推出后,有效的解决了redis分布式方面的需求:当遇到单机内存,并发,流量等瓶颈是,可以采用cluster架构 ...
- redis主从和集群搭建
主从搭建 redis的主从搭建非常简单,打开配置文件6379.conf,只需要将主节点的protected-mode设置为no,然后在从节点配置中加入:slaveof <masterip> ...
- Redis操作及集群搭建以及高可用配置
NoSQL - Redis 缓存技术 Redis功能介绍 数据类型丰富 支持持久化 多种内存分配及回收策略 支持弱事务 支持高可用 支持分布式分片集群 企业缓存产品介绍 Memcached: 优点:高 ...
- Redis 3.0集群搭建/配置/FAQ
·声明 1,已官网中文教程为基础,边看边学,结合环境现状搭建. 2,哥对Ruby不热爱.不熟悉.不感冒,所述内容如有疑义请谅解. 3,3.0官说集群还在测试中,其实用用也还算马马虎虎,对外集群API真 ...
- Redis Cluster 官方集群搭建指南
安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...
随机推荐
- Jqgrid学习(转载)
jqGrid API 全 JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做 ...
- cf747 D. Winter Is Coming
天呢,这个题2333333,真是被各种卡.完蛋完蛋完蛋.IQ------------: #include<bits/stdc++.h> #define lowbit(x) x&(- ...
- Hibernate常见异常
1.数据库编码问题 主要错误信息 WARN: SQL Error: 1366, SQLState: 22001 ... ERROR: Data truncation: Incorrect string ...
- Webx3学习笔记(2)——基本流程
Webx3项目是运行在jetty/tomcat这种Web应用容器中的,Web应用的模式都是请求-响应的.一个请求通过浏览器发出,封装为HTTP报文到达服务端,被容器接受到,封装为HttpRequest ...
- HTTP的GET方法模拟
进行GET方法的测试 #telnet[ ]10.1.1.11[ ]80 GET[ ]/[ ]HTTP/1.0 [两个回车] HEAD[]/[]HTTP/1.0[回车回车] http://www.cnb ...
- Nancy简单实战之NancyMusicStore(二):打造首页
前言 继上一篇搭建好项目之后,我们在这一篇中将把我们NancyMusicStore的首页打造出来. 布局 开始首页之前,我们要先为我们的整个应用添加一个通用的布局页面,WebForm中母版页的概念. ...
- 进阶之初探nodeJS
一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知 ...
- 【js编程艺术】小制作五
1.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- [TPYBoard-Micropython之会python就能做硬件 3] 制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231 ...
- spring-dwr注解整合
注解配置 1.web.xml 只需将DwrServlet换为DwrSpringServlet(包名不同) 2.dwr类 3.applicationContext.xml 4.annotationCon ...