Redis集群搭建-多服务器
条件
l 基于redis5.0.*版本进行集群的搭建
l 集群要求至少六个节点,即每个主节点配置1个从节点,本集群是使用了3个主节点并每个下面挂一个从节点,三个主节点分布在3台服务器上
l 集群配置信息如下:
|
服务器 |
Master |
Slave |
|
172.16.114.52 |
7001 |
7002 |
|
172.16.239.95 |
7003 |
7004 |
|
172.16.239.89 |
7005 |
7006 |
集群配置
在第一台服务器(172.16.114.52)上操作
1. 下载redis源码包并解压
wget -c http://download.redis.io/releases/redis-5.0.7.tar.gz tar -zxvf redis-5.0.7.tar.gz
2. 新建集群配置目录
mkdir -p /usr/local/redis-cluster/7001 /usr/local/redis-cluster/7002
3. 将解压后的文件中的redis.conf配置文件拷贝到集群目录之下 并执行redis安装命令
cd redis-5.0.7 cp redis.conf /usr/local/redis-cluster make install PREFIX=/usr/local/redis2 # 注意 这里PREFIX一定是大写
4. 进入/usr/local/redis2,复制bin文件到7001,7002目录下
cd /usr/local/redis2 cp -r bin /usr/local/redis-cluster/7001 cp -r bin /usr/local/redis-cluster/7002
5. 进入redis-cluster目录,修改redis.conf并分别拷贝到7001,7002
修改配置文件内容如下:
1) 屏蔽限制本地访问, 将bind 127.0.0.1 修改为 bind 0.0.0.0

2) protected-mode保护模式从yes改为no

3) daemonize后的no改为yes

4) 去掉cluster-enabled yes 前面的注释

5) 去掉cluster-node-timeout 前面的注释

6) port后的端口改为7001, 将redis.conf文件,复制到对应的目录下.

cp redis.conf 7001
7) 再次编辑redis.conf 将port参数修改 7001 ==> 7002,复制到对应目录下.
sed -i 's/7001/7002/g' redis.conf cp redis.conf 7002
8)修改pidfile参数
pidfile /var/run/redis_7001.pid
9)修改node
cluster-config-file nodes-7001.conf # 修改为对应的节点ID
6. 启动redis服务
/usr/local/redis-cluster/7001/bin/redis-server /usr/local/redis-cluster/7001/redis.conf /usr/local/redis-cluster/7002/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
注意点: 在启动服务之前要修改配置文件中对应的dump dir目录,否则默认目录是 ./ 需要改成对应的绝对路径,否则会造成路径冲突,导致启动失败
查看启动的服务:

7. 在另外两台机器上重复以上的操作,需要注意的是,需要设置对应的端口与目录
效果:
第一台(172.16.114.52)

第二台(172.16.239.95):

第三台(172.16.239.89):

集群搭建
使用Redis客户端执行命令:
/usr/local/redis-cluster/7001/bin/redis-cli --cluster create --cluster-replicas 1 172.16.114.52:7001 172.16.114.52:7002 172.16.239.95:7003 172.16.239.95:7004 172.16.239.89:7005 172.16.239.89:7006
参数说明:
--cluster 集群管理命令 后面可以执行集群相关的命令
--cluster-replicas 1 代表每个Master携带一个Slave
create 创建集群命令


至此已经配置成功
客户端测试
开启客户端 链接任意一个Master节点
/usr/local/redis2/bin/redis-cli -h 172.16.114.52 -c -a 密码 -p 端口
参数:
-c: 连接到集群

我们可以看到,当我们set一个键值对的时候,Redis会自动为我们的key计算CRC16值,然后对16384取模,获取key对应的hash slot,然后通过判断该槽被那个Master所占用,帮我们重定向到那个Master节点,将键值对存入。
查看集群信息:
cluster nodes

常见问题:
- 出现节点的状态为handshake并且无法使用cluster forget 删除掉该节点,节点的唯一ID一直发生变化
解决: 这是因为集群所有的节点都持有该节点的信息,不停的再发起重新连接操作,需要在所有节点上(包括从节点)执行 cluster forget xxx操作, 才能彻底移除掉无效节点
- 集群中出现无用节点
例如:76e6fb6341fd43aaa1be5b2f8bb68a8c8a0572ae :0@0 slave,fail,noaddr - 1585662914903 1585662914903 6 disconnected
可以将其移除 cluster forget 76e6fb6341fd43aaa1be5b2f8bb68a8c8a0572ae
Redis集群搭建-多服务器的更多相关文章
- Redis集群搭建,伪分布式集群,即一台服务器6个redis节点
Redis集群搭建,伪分布式集群,即一台服务器6个redis节点 一.Redis Cluster(Redis集群)简介 集群搭建需要的环境 二.搭建集群 2.1Redis的安装 2.2搭建6台redi ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- Redis集群搭建-韩国庆
认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...
- redis 集群搭建: redis-cluster
前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...
- centos redis集群搭建
说明: 10.0.0.111部署6500,6501,6502三个主节点 10.0.0.222部署6500,6501,6502三个备份节点 1.安装redis:略 2.配置内核参数 # 配置 vm.ov ...
- 分享知识-快乐自己:redis集群搭建
Redis介绍: 1.开源的NoSql数据库 2.C语言编写 3.基于内存运行,并且支持持久化 4.Key value存储 5.是主流的Nosql数据库之一 Redis优点: 1.内存使用方面,表现优 ...
- redis集群搭建踩坑笔记
推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygem ...
- redis集群搭建(简单简单)一台机器多redis
redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件: 进入到解压缩后的redis文件目录(此时可以看到Makef ...
- 新手redis集群搭建
redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件:进入到解压缩后的redis文件目录(此时可以看到Makefile文 ...
- Redis集群搭建及选举原理
redis集群简述 哨兵模式中如果主从中master宕机了,是通过哨兵来选举出新的master,在这个选举切换主从的过程,整个redis服务是不可用的.而且哨兵模式中只有一个主节点对外提供服务,因此没 ...
随机推荐
- .NET 压缩/解压文件
本文为大家介绍下.NET解压/压缩zip文件.虽然解压缩不是啥核心技术,但压缩性能以及进度处理还是需要关注下,针对使用较多的zip开源组件验证,给大家提供技术选型 目前了解到的常用技术方案有Syste ...
- 记一次 .NET某上位机视觉程序 卡死分析
一:背景 1. 讲故事 前段时间有位朋友找到我,说他的窗体程序在客户这边出现了卡死,让我帮忙看下怎么回事?dump也生成了,既然有dump了那就上 windbg 分析吧. 二:WinDbg 分析 1. ...
- 如何使用hugo搭建个人博客
整体架构 在 github 托管两个仓库,仓库 1 保存博客内容源文件,仓库 2 保存 Hugo 生成的网站文件,博客内容仓库通过 git submodule 的方式在仓库 2 管理.使用 Obsid ...
- Maya 2019.2 Mtoa 无法正常加载并报错
事件起因: 在开始安装 Maya2019.2 时自动安装的 Mtoa 的版本为 5.3.1,但是在插件管理器里无法启用插件,于是乎去网上下了一个低的版本 5.1.1,虽然可以使用但是渲染出来的东西不能 ...
- 【赵渝强老师】在MongoDB中使用MapReduce方式计算聚合
MapReduce 能够计算非常复杂的聚合逻辑,非常灵活,但是,MapReduce非常慢,不应该用于实时的数据分析中.MapReduce能够在多台Server上并行执行,每台Server只负责完成一部 ...
- 可视化U-Net编码器每层的输出(在已经训练好的模型下展示,并不是初始训练阶段展示)
想看一下对于一个训练好的模型,其每一层编码阶段的可视化输出是什么样子的.我以3Dircabd肝脏血管分割为例,训练好了一个U-Net模型.然后使用该模型在推理阶段使用,并可视化了每一层编码器. 分割结 ...
- ProxyPin 抓包,原来可以这么简单!
你是否还在为网络请求的抓包发愁?其实,ProxyPin 可以让抓包操作变得异常简单!不需要复杂的设置,也不用繁琐的配置,轻松几步就能实现.让我们一起来看看吧! 抓包操作常用于测试网络请求.分析接口 ...
- Win11使用Translucent TB设置Windows导航栏透明失败解决方案
Win11使用Translucent TB设置Windows导航栏透明失败解决方案 Translucent TB下载方式:直接在Windows自带的Microsoft应用商店里面搜索下载就可以了 1. ...
- 几行代码带你用TinyEngine低代码引擎开发侧边栏插件
本文分享自华为云社区<实操上手TinyEngine低代码引擎插件化开发>,作者:OpenTiny. 1.背景介绍 1.1 TinyEngine 低代码引擎简介 低代码开发是近些年非常热门的 ...
- CodeQL学习笔记(1)-QL语法(逻辑连接词、量词、聚合词、谓词和类)
最近在学习CodeQL,对于CodeQL就不介绍了,目前网上一搜一大把.本系列是学习CodeQL的个人学习笔记,根据个人知识库笔记修改整理而来的,分享出来共同学习.个人觉得QL的语法比较反人类,至少与 ...