linux下搭建redis集群

2023-05-16

目录

      • 1. 准备三台服务器
      • 2. 配置服务器
      • 3. 安装redis
      • 4. 配置集群
      • 5. 测试集群

1. 准备三台服务器

这是准备的三台服务器IP地址如下,首先需要执行ping ip地址,检查三台服务器之间是否能够相互通信,如下图所示,说明相互之间能够通信,这一点很重要,否则集群无法搭建成功

192.168.227.91
192.168.227.92
192.168.227.93

在这里插入图片描述

2. 配置服务器

执行vim /etc/hosts分别编辑三台服务器的hosts文件追加如下内容,然后保存退出,分别重启服务器是配置生效

192.168.227.91  redis1
192.168.227.92  redis2
192.168.227.93  redis3

3. 安装redis

redis安装包下载链接,这里使用的是redis5.0的安装包
在这里插入图片描述
上传redis安装包到/usr/local/src目录下,然后执行tar -zxvf redis-5.0.0.tar.gz解压,此时执行cd命令切换到解压目录,执行mkdir 7001 7002创建配置文件存放目录
在这里插入图片描述
执行以下命令复制配置redis.conf文件并编辑

cp  redis.conf   ./7001
vim ./7001/redis.conf

修改以下内容

protected-mode no
port 7001
daemonize yes
pidfile /usr/local/src/redis5.0.0/7001/redis-7001.pid
logfile /usr/local/src/redis5.0.0/7001/redis-7001.log
dir /usr/local/src/redis5.0.0/7001
appendonly yes
cluster-enabled yes
cluster-config-file nodes-7001.conf

执行cp /usr/local/src/redis5.0.0/7001/redis.conf /usr/local/src/redis5.0.0/7002,把7001目录下的redis.conf配置文件复制到7002目录下,然后执行sed -i ‘s/7001/7002/g’ redis.conf 将7001全部替换成7002

剩下的两台服务器依照上面一样操作即可…

先执行cd /usr/local/src/redis-5.0.0来到redis解压目录下,然后执行make进行编译redis(三台服务器上的redis都要进行编译),编译完成后,分别在三台服务器上都要执行以下命令启动redis服务,最后执行ps -ef |grep redis查看redis服务启动情况,如图表示redis服务启动成功!!!

/usr/local/src/redis-5.0.0/src/redis-server   /usr/local/src/redis-5.0.0/7001/redis.conf
/usr/local/src/redis-5.0.0/src/redis-server   /usr/local/src/redis-5.0.0/7002/redis.conf

在这里插入图片描述

4. 配置集群

三台服务器,启动6个实例,形成三主三从,其中存储相同数据的主从节点不能落在同一台机器上,目的是防止部署redis的虚拟机宕机从而造成主从节点全部失效,所以为了使用主从节点不落在同一台机器上,使用如下命令:每台ip+port交叉,执行命令后出现如下图所示表示redis集群创建成功

/usr/local/src/redis-5.0.0/src/redis-cli --cluster create --cluster-replicas 1 192.168.227.91:7001 192.168.227.92:7002 192.168.227.92:7001 192.168.227.93:7002 192.168.227.93:7001 192.168.227.91:7002
# 根据提示输入yes

注意:执行创建集群命令后如果报错Could not connect to Redis at 192.168.227.91:7001: No route to host,需要执行systemctl stop firewalld关闭防火墙.

在这里插入图片描述

5. 测试集群

执行/usr/local/src/redis-5.0.0/src/redis-cli -p 7001后进入redis,然后执行以下命令查看集群健康状态

cluster info 查看集群健康状态
cluster nodes 查看节点健康状态

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下搭建redis集群 的相关文章

  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • Redis如何存储关联数组?设置、散列还是列表?

    我对 Redis 的所有可用存储选项有点困惑 我想做一些简单的事情 并且不想过度设计它 我正在与phpredis and Redis v2 8 6 我有一个需要存储的简单关联数组 我还需要能够通过其键检索项目并循环遍历所有项目 a arra

随机推荐

  • linux下安装nginx

    前言 nginx是一款高性能的 HTTP 和反向代理的web服务器 xff0c Nginx 可以作为静态页面的 web 服务器 xff0c 同时还支持 CGI 协议的动态语言 xff0c 但是不支持 java Java 程序只能通过与 to
  • js中获取当前点击的li标签以及li标签中a标签的id

    可以使用以下代码来获取当前点击的li标签的id xff1a document querySelectorAll 39 li 39 forEach function li li addEventListener 39 click 39 fun
  • linux下nginx的使用

    目录 前言1 nginx conf配置文件2 反向代理3 负载均衡4 动静分离5 高可用配置 前言 今天来说一下nginx的具体怎么使用 xff08 nginx安装参考这里 xff09 xff0c 主要包括反向代理 负载均衡 动静分离以及高
  • docker命令详解

    docker命令集 命令说明容器生命周期管理run创建一个新容器并运行start开启一个容器并使其在后台运行stop停止一个容器restart重启一个容器kill杀掉一个容器进程rm删除容器pause暂停容器unpause恢复暂停容器cre
  • redis常见问题与解决方案

    文章目录 缓存穿透 问题描述解决方案 缓存击穿 问题描述解决方案 缓存雪崩 问题描述解决方案 缓存穿透 问题描述 key 对应的数据在数据源并不存在 xff0c 每次针对此 key 的请求从缓存获取不到 xff0c 请求都会压到数据库 xf
  • jar包里面文件修改

    目录 前言1 解压jar包2 编辑要修改的配置文件3 重新生成jar包4 替换 前言 之前认为只要用解压软件打开包 xff0c 把里面要修改的配置文件提取出来编辑完成后直接替换掉jar包里原来的文件就好 xff0c 但实际项目中这样做很可能
  • javaweb项目字符集设置

    目录 前言1 编辑idea的VM Options属性文件2 idea的settings设置3 idea中tomcat设置4 tomcat字符集设置 前言 今天主要来讲一下在idea开发java web项目中怎么统一字符集 xff0c 乱码在
  • maven

    目录 1 maven安装1 1 maven下载1 2 配置maven环境变量1 3 settings配置文件 2 maven使用2 1 maven项目的层级结构2 2 maven工作方式2 3 maven生命周期2 4 maven命令2 5
  • docker之网络篇

    前言 刚开始学习docker的时侯 xff0c 启动容器时并没有指定网络 xff0c 使用的是默认的bridge xff0c 也就是桥接的模式 xff0c 这种模式下启动的容器间都是可以相互通信的 xff0c 所以使用起来也是特别的爽 xf
  • 虚拟机中Linux怎么与宿主机、外网通信

    目录 前言一 NAT模式1 设置宿主机2 设置VMware虚拟机3 对虚拟机Linux进行设置4 重启linux网络服务 二 桥接模式1 cmd命令行窗口查询IP地址2 设置Linux3 重启网卡服务 三 only host模式1 设置宿主
  • docker私有镜像仓库搭建

    目录 1 拉取registry镜像2 启动registry容器3 编辑daemon json文件4 重新加载docker配置5 访问私库web页面6 推送镜像到registry私库 1 拉取registry镜像 span class tok
  • docker企业级镜像仓库harbor搭建

    目录 1 下载harbor离线安装包2 解压harbor安装包3 编辑harbor配置文件4 编辑docker配置文件5 安装docker compose6 运行安装脚本7 访问harbor网页端8 登录harbor9 推送docker镜像
  • mysql中一张表的user_id替换成对应user_name保存

    在MySQL中将一个表中的user id替换成对应的user name xff0c 需要使用join语句将两个表连接起来 xff0c 然后使用update语句更新表中的数据 具体操作如下 xff1a 假设有两个表 xff1a 表A和表B x
  • Window10系统快捷方式小箭头的去除与恢复

    复制下面的代码 新建一个文本文件 粘贴后另存为 bat文件 xff0c 然后以管理员身份打开就可以去掉桌面上图标的小箭头或恢复桌面上图标的小箭头 去掉小箭头 span class token variable reg span span c
  • SUSE系统设置

    目录 1 防火墙设置2 配置ssh服务3 修改hostname4 配置ip dns 网关5 配置镜像源6 配置apache 服务器7 安装ping命令 1 防火墙设置 span class token variable SUSE11下 xf
  • mysql8.0多实例安装

    目录 1 下载mysql二进制安装包2 解压mysql二进制安装包3 创建mysql用户和用户组4 编辑my cnf文件5 初始化mysql实例6 启动mysql实例7 登录mysql实例 1 下载mysql二进制安装包 mysql8 0
  • oracle12c数据库安装(静默安装)

    目录 前言1 安装前准备工作2 安装数据库软件3 配置监听4 创建数据库 前言 本教程是在Linux下安装oracle12c数据库 xff0c 由于在有些情况下并没有图形化安装界面 xff0c 所以这里介绍在linux下通用的安装方式 xf
  • oracle19c数据库安装(静默安装)

    目录 前言1 安装前准备工作2 安装数据库3 配置监听4 创建数据库 前言 oracle19c数据库安装相对于oracle12c安装还是有些不一样的 xff0c 所以今天再来记录一下安装过程 xff0c 本次安装仍然是基于Oracle li
  • Apollo配置中心搭建

    目录 1 下载安装包和源码包2 创建数据库和表3 启动Apollo服务端4 访问Apollo客户端 1 下载安装包和源码包 下载地址 找到要安装的版本 xff0c 我这里选择的是1 3 0版本 下载好安装包后上传至linux的 usr lo
  • linux下搭建redis集群

    目录 1 准备三台服务器2 配置服务器3 安装redis4 配置集群5 测试集群 1 准备三台服务器 这是准备的三台服务器IP地址如下 xff0c 首先需要执行ping ip地址 xff0c 检查三台服务器之间是否能够相互通信 xff0c