linux下redis4.0.2集群部署(利用原生命令)
一、部署架构如下
每台服务器准备2个节点,一主一从,主节点为另外两台其中一台的主,从节点为另外两台其中一台的从。
二、准备6个节点配置文件
在172.28.18.75上操作
cd /etc/redis
vim redis-25701.conf
内容如下
bind 172.28.18.75
port 25701
masterauth "Zaq1xsw@"
requirepass "Zaq1xsw@"
protected-mode yes
daemonize yes
dir "/etc/redis"
pidfile "/var/run/redis_25701.pid"
loglevel notice
logfile "redis-25701.log"
dbfilename "dump-25701.rdb" cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file node-25701.conf
cluster-require-full-coverage no
替换端口号,并生成一个从节点配置文件
sed 's/25701/25702/g' redis-25701.conf > redis-25702.conf
复制这两个配置文件到172.28.18.103和172.28.18.104对应的目录下
scp -P25601 redis-25701.conf root@172.28.18.103:/etc/redis/
scp -P25601 redis-25702.conf root@172.28.18.103:/etc/redis/
scp -P25601 redis-25701.conf root@172.28.18.104:/etc/redis/
scp -P25601 redis-25702.conf root@172.28.18.104:/etc/redis/
三、启动6个节点
redis-server redis-25701.conf
查看redis-25701.log
集群模式运行
打开node-25701.conf文件,里面有如下内容
表示自己的nodeid,并且是一个master,发现自己,
启动从节点:
redis-server redis-25702.conf
按照以上操作,启动另外两台服务器的4个节点
启动完毕,可以使用redis-cli来查看集群信息:
redis-cli -h 172.28.18.75 -p 25701 -a password cluster nodes
查看集群配置文件内容
redis-cli -h 172.28.18.75 -p 25701 -a password cluster info
当前集群状态是失败的,分配的槽为0
四、执行节点之间的meet操作,使相互之间可以通信感知对方
在172.28.18.75上执行
将25701节点和25702节点之间通信,返回OK,成功,此时我们查看25701的节点信息,已经感知到了25702节点信息
同样查看25702,也感知到了25701
继续执行meet操作,使172.28.18.75的25701和另外两台服务器的25701和25702通信
redis-cli -h 172.28.18.75 -p 25701 -a password cluster meet 172.28.18.103 25701
redis-cli -h 172.28.18.75 -p 25701 -a password cluster meet 172.28.18.103 25702
redis-cli -h 172.28.18.75 -p 25701 -a password cluster meet 172.28.18.104 25701
redis-cli -h 172.28.18.75 -p 25701 -a password cluster meet 172.28.18.104 25702
此时,所有节点都感知到了对方,总共6个节点
握手操作成功完成,目前配置显示所有节点都是master,所以接下来需要设置主从
五、设置主从节点
172.28.18.75 25701(主)--》172.28.18.103 25702(从)
172.28.18.103 25701(主)--》172.28.18.104 25702(从)
172.28.18.104 25701(主)--》172.28.18.75 25702(从)
1、172.28.18.75 25701(主)--》172.28.18.103 25702(从)
在从节点172.28.18.103上操作
redis-cli -h 172.28.18.103 -p 25702 -a password cluster replicate 5f5939a7b9f6c1290173b7d326b076ee0736a268
25702:从节点端口
5f5939a7b9f6c1290173b7d326b076ee0736a268:主节点nodeid,可通过 redis-cli 的cluster nodes 来查询
返回ok,查询cluster nodes,25702已经变成172.28.18.75 25701的从节点
再查询172.28.18.75 25701节点信息,103的25702成为了他的从节点
再按照以上操作设置另外两台主从
在172.28.18.104上执行
将104 25702变成103 25701的从节点
在172.28.18.75上执行
将75 25702变成104 25701的从节点
此时,查看75 25701集群节点信息
3主3从设置完毕
六、为主节点分配槽slot
3主:将16384个槽分为3份,0到5461的数据分到75 25701端口,将5462到10922的数据分到103 25701端口,10923到16383的数据分到104 25701端口
在172.28.18.75上编写脚本
vim add_slots.sh
#!/bin/bash start=$ #定义一个起始变量
end=$ #定义一个结束变量 for slot in `seq $start $end` #利用for循环来重复执行命令,在slot中
do
echo "slot:$slot"
redis-cli -h 172.28.18.75 -p 25701 -a password cluster addslots $slot
done
执行脚本:
chmod +x add_slots.sh
./add_slots.sh 0 5461
完毕后,查看节点信息
成功分配5462个槽
在另外两台服务器也分配剩余的槽
./add_slots.sh 5462 10922
./add_slots.sh 10923 16383
查看槽分配结果
redis-cli -h 172.28.18.75 -p 25701 -a password cluster slots
5461个槽分配到172.28.18.75 25701上,并且它的从节点为172.28.18.103 25702
到此,分配槽操作完毕。
七、测试结果
连接172.28.18.75 25701,注意一定要加"-c"参数,否则如果数据没有分配到当前节点则不会自动连接其他集群的节点。
redis-cli -c -h 172.28.18.75 -p 25701 -a password
返回OK,并且数据被分配到了104 25701节点的槽里。并且连接也自动变为104的25701,此时get
返回数据。集群已经正常工作。
此时,停掉172.28.18.75 25701主节点,172.28.18.103 25702将晋升为主节点
查看172.28.18.103 25702节点信息
此时自己成为master,而172.28.18.75 25701则显示失败状态,此时把172.28.18.75 25701节点启动
此时自己成为从节点,再查看172.28.18.103 25702节点信息,172.28.18.75 25701,已经成为salve。
至此,redis原生安装集群设置完毕。
linux下redis4.0.2集群部署(利用原生命令)的更多相关文章
- linux下redis4.0.2集群部署(利用Ruby脚本命令)
一.原生命令方式和Ruby脚本方式区别 利用Ruby脚本部署和用原生命令部署,节点准备的步骤都是一样的,节点启动后的握手,以及主从.槽分配,利用Ruby脚本一步就能完成,利用原生命令需要一步一步地执行 ...
- linux下redis4.0.2安装与部署
一.redis的介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更 ...
- Linux下搭建Lotus Domino集群
Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
- Linux下Hadoop2.7.3集群环境的搭建
Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...
- hbase-2.0.4集群部署
hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...
- redis4.0.1集群安装部署
安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...
- Redis-4.0.11集群配置
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...
- redis-5.0.5 集群部署
之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...
随机推荐
- 利用Aspectj实现Oval的自动参数校验
前言: Oval参数校验框架确实小巧而强大, 他通过注解的方式配置类属性, 然后通过Oval本身自带的工具类, 快速便捷执行参数校验. 但是工具类的校验需要额外的代码编写, 同时Oval对函数参数级的 ...
- jsonify
在flask中通过响应,将json数据显示在网页中,并且将Content-Type该为application/json格式 1,第一种方法: from flask import jsonify @ap ...
- UVa839
这个引用好精髓. #include <iostream> #include <cstring> #include <string> #include <map ...
- oracle删除当前用户以及当前用户所有表、索引等操作
ORACLE删除当前用户下所有的表的方法 如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉.删除后再创建该用户 ...
- Flutter 知识点
Flutter:一个移动应用开发框架,它使用 Dart.C++.Skia 开发,对外提供了完全不依赖系统平台的 Widget 的能力,只通过自绘图形的方式工作,具有极其优秀的跨平台性.目前已经支持了 ...
- C# Windows Service 基础
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...
- 什么是FPGA的HP,HR I/O
什么是FPGA的HP,HR I/O HP接口为高速接口,用于存储器或者芯片与芯片之间的接口,HR可以接受很宽的电平标准.
- 移植Valgrind检测Android JNI内存泄漏
1.相关工具 Valgrind:从Valgrind官网下载最新的源码包,我这里用的是:valgrind 3.14.0 (tar.bz2) [17MB] - 9 October 2018. Ubuntu ...
- SpringSecurity-UsernamePasswordAuthenticationFilter的作用
UsernamePasswordAuthenticationFilter应该是我们最关注的Filter,因为它实现了我们最常用的基于用户名和密码的认证逻辑. 先看一下一个常用的form-login配置 ...
- 学习笔记之Naive Bayes Classifier
Naive Bayes classifier - Wikipedia https://en.wikipedia.org/wiki/Naive_Bayes_classifier In machine l ...