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 单台机器的集群 ...
随机推荐
- 剑指offer——41数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- hdu6350 /// tarjan+并查集+组合+最大流思想
题目大意: 给定n个点 m条边没有重边的仙人掌图(没有一条边会同时存在与两个环 也就是环都是相互独立的) 求任意两点间 i^j^maxflow(i,j)的总和 maxflow为两点间最大流 题解:ht ...
- pytest_fixture--scope="session"
import pytest@pytest.fixture(scope="session")def login(): print("\n输入用户名密码登陆! configt ...
- python接口自动化(put请求)
python接口自动化(put请求) 一.put请求的作用:更新资源 二.应用 导包:import requests 调用requests.put()方法 参数有URL.data.headers,方法 ...
- 在SpringBoot 1.5.3上使用gradle引入hikariCP
在SpringBoot 1.5.3上使用gradle引入hikariCP hikari来源于日语,是“光”的意思,号称“史上最快数据库连接池”,也是springboot2.0最新版默认的连接池.但是s ...
- shell脚本输出九九乘法表
#!/bin/bash#输出九九乘法表 for ((i=1;i<=9;i++)) do for ((j=1;j<=$i;j++)) do echo -n $j'x'$i=$(($i*$j) ...
- [牛客小白月赛18] Forsaken的数列
FHQTreap裸题... 用文艺平衡树的方法,维护区间和然后一直Push_Down就可以了(60行代码暴力AC) //张家奇怎么又AKIOI了呀,怎么CSP也满分啊...怎么清北天天给他打电话啊.. ...
- ubuntu phpize 安裝
php 版本 7.2,所以安裝 php7.2的 sudo apt-get install php7.2-dev 參考 Is is possible to install phpize for PHP7 ...
- canvas 压缩图片上传
问题:前端开发过程中难免会将数据提交到后台,但若是提交的数据过大,特别上传图片这类需求,如果不对上传的图片进行压缩处理,就难免会出现请求时间过长的情况,对于用户体验肯定就不是太友好,那么这时候该如何将 ...
- 47. List中特有的方法
集合的体系:--------------| Collection 单列集合的根接口----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复---------- ...