Redis本地集群搭建(5版本以上)
Redis本地集群搭建(5版本以上)
2019年11月3日10:05:48
步骤
1、下载安装Redis的安装包
2、复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点
3、修改每个Redis节点的端口,以及开启集群模式
3、使用redis-cli --cluster create ip:port给集群的节点分配哈希槽(如果要使用主从,只需要添加master节点的ip:port即可)
4、使用redis-cli --cluster check ip:port查看节点信息
5、使用redis-cli --cluster add-node node-ip:node-port master-ip:master-port --cluster-slave --cluster-master-id master节点id
具体实现
1、编译
下载安装Redis的安装包
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
解压安装包
tar zxf redis-5.0.6.tar.gz
进入到解压后的文件夹

ps:编译前,服务器需要安装gcc
yum install gcc-c++
输入make命令即可编译,出现下图提示表示编译成功

也可以指定编译位置
make install PREFIX=path
编译后的文件

2、复制并修改配置,开启
使用命令复制
cp -rf 文件夹路径 文件夹路径
效果

修改redis.conf的配置,给复制的每一份redis都修改成不同的端口,后台启动
# 默认
daemonize no
port 6379
# cluster-enabled yes
#修改
daemonize yes
port 7001
cluster-enabled yes
开启每个节点(批量执行)
cd /software/redis/redis6379/bin
./redis-server ./redis.conf
cd /software/redis/redis7000/bin
./redis-server ./redis.conf
cd /software/redis/redis7001/bin
./redis-server ./redis.conf
cd /software/redis/redis7002/bin
./redis-server ./redis.conf
cd /software/redis/redis7003/bin
./redis-server ./redis.conf
cd /software/redis/redis7004/bin
./redis-server ./redis.conf
出现下图表示所有节点开启成功

3、分配哈希槽
使用如下命令
redis-cli --cluster create ip:port ip:port ip:port

4、查看分配信息
使用命令redis-cli --cluster check ip:port查看分配的信息

可以看出,6379分配到的是0-5460,7001是5461-10922,7003是10923-16383。
5、添加从节点
使用命令
redis-cli --cluster add-node node-ip:node-port master-ip:master-port --cluster-slave --cluster-master-id master节点id

添加完毕后查看节点信息
cluster nodes

从上图可以看出,设置了3主3从的集群模式。
6、测试key
连接redis(-c表示是集群模式)
redis-cli -p 6379 -c

可以看出,在端口为6379的节点上添加key,通过算法将这个key转发到了7001端口的节点上。
进入7001端口的节点,可以查到这个key值。
同时,7001端口的从节点也接收到了这个key值。
7、测试哨兵
使用 ps aux|grep redis查询每个redis节点的端口

这时候主从节点之间是正常的

关闭端口为7001的节点


7001节点的7002端口从节点自动升级到了master节点。
重新开启7001节点,自动降级到slave。

Redis高可用集群的水平扩展
扩展主节点
新建端口为7005和7006的Redis节点并运行。

把7005节点加入容器
redis-cli --cluster add-node 127.0.0.1:7005 127.0.0.1:6379

分配哈希槽给7005节点
从7001节点分配1000个哈希槽给7005节点
all表示均匀分配(从每个节点取一点哈希槽出来)
done表示从当前节点取
[root@iz2zeaf5jdjve80rjlsjgnz bin]# redis-cli --cluster reshard 127.0.0.1:7001
>>> Performing Cluster Check (using node 127.0.0.1:7001)
S: 152f1f15ac36784362e8733a393c9a257f7a8ba2 127.0.0.1:7001
slots: (0 slots) slave
replicates f9129fca620934624742e25a31d08c545a9d583e
S: ac613c6d40e0d860662effb7403a67fe9b6029aa 127.0.0.1:7000
slots: (0 slots) slave
replicates 77cbdfe644fdc0e50e550cad44a3ed144c8d2499
M: f9129fca620934624742e25a31d08c545a9d583e 127.0.0.1:7002
slots:[5962-10922] (4961 slots) master
1 additional replica(s)
S: 09ede6784ccc5a41b82db3fe4c544b5c126f455e 127.0.0.1:7004
slots: (0 slots) slave
replicates bd08af40b95169524c27da654302c9f12d8a9e8c
M: bd08af40b95169524c27da654302c9f12d8a9e8c 127.0.0.1:7003
slots:[11422-16383] (4962 slots) master
1 additional replica(s)
M: 6c87fc578eec8bd7d588d111347dd7a7bd21dd0b 127.0.0.1:7005
slots: (0 slots) master
M: 77cbdfe644fdc0e50e550cad44a3ed144c8d2499 127.0.0.1:6379
slots:[0-5961],[10923-11421] (6461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 6c87fc578eec8bd7d588d111347dd7a7bd21dd0b
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1: all
Ready to move 1000 slots.

扩展从节点
将7006节点的Redis添加到集群中。
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7005 --cluster-slave --cluster-master-id 6c87fc578eec8bd7d588d111347dd7a7bd21dd0b

参考
Redis本地集群搭建(5版本以上)的更多相关文章
- redis的集群搭建(很详细很详细)
说在前面的话 之前有一节说了redis单机版的搭建和使用jedis管理redis单机版和集群版, 本节主要讲一下redis的集群搭建. 跳转到jedis管理redis的使用 认识redis集群 首先我 ...
- linux环境下redis安装(redis伪集群搭建)
redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...
- Redis Cluster集群搭建<原>
一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标 Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...
- Redis Cluster 集群搭建与扩容、缩容
说明:仍然是伪集群,所有的Redis节点,都在一个服务器上,采用不同配置文件,不同端口的形式实现 前提:已经安装好了Redis,本文的redis的版本是redis-6.2.3 Redis的下载.安装参 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
- 【Redis】Redis cluster集群搭建
Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...
- redis主从集群搭建及容灾部署(哨兵sentinel)
Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...
- druid.io本地集群搭建 / 扩展集群搭建
druid.io 是一个比较重型的数据库查询系统,分为5种节点 . 在此就不对数据库进行介绍了,如果有疑问请参考白皮书: http://pan.baidu.com/s/1eSFlIJS 单台机器的集群 ...
随机推荐
- http over git server
编译安装git 参考 <CentOS7编译安装git> 安装httpd yum install httpd -y 安装gitweb yum install gitweb -y 创建项目根目 ...
- 初探Javascript魅力(1)
转自:CSDN--http://blog.csdn.net/cherry_vicent/article/details/42120149 1.javascript是什么 根据用户的一些操作,然后来 ...
- 【学术篇】规律选手再次证明自己(舒老师的胡策题 T2 LX还在迷路)
只要你不强制在线, 我就能分块. --Reflash 就算你强制在线, 我还是要分块. --Enzymii 今天做了一波舒老师的毒瘤题, T1据说很水但是没思路所以直接放掉了.. 去看了看T2好像可以 ...
- 在Linux下如果要使用接口标志要加什么头文件吗?因为我在使用IFF_UP时会出错,说是未定义
头文件一般放在/usr/include目录下,用grep 'IFF_UP' /usr/include/*.* |less这个命令查找一下在哪个头文件里面有定义. 追问 嗯~这个方法确实可以查找到一 ...
- 4.Struts2中Action的三种访问方式
1.传统的访问方式-很少使用 通过<action>标签中的method属性,访问到action中的具体方法 具体实现: 1.action代码 import com.opensymphony ...
- wordpress翻译插件gtranslate
https://www.gdstautoparts.com/
- 【转载】WebRTC基于GCC的拥塞控制(上) - 算法分析
实时流媒体应用的最大特点是实时性,而延迟是实时性的最大敌人.从媒体收发端来讲,媒体数据的处理速度是造成延迟的重要原因:而从传输角度来讲,网络拥塞则是造成延迟的最主要原因.网络拥塞可能造成数据包丢失,也 ...
- kafka集群安装和使用
kafka(1)kafka是一个分布式的消息缓存系统(2)kafka集群中的服务器都叫做broker(3)kafka有两类客户端,一个叫做producer(消息生产者),一类叫做consumer(消息 ...
- JQuery简单实用的模板引擎
1.在html界面声明模板(注意type类型) <script id="tmplInvokeProvider" type="text/x-jquery-tmpl&q ...
- Delphi中任务栏状态区的编程
在Windows桌面的任务栏上有一个凹陷的区域,其中显示着系统时钟以及一些图标,这个长方形的区域便是Windows的任务栏状态区(taskbar status area).本文将介绍使用Borland ...