快速搭建redis集群

快速搭建redis集群

文章目录

  • 快速搭建redis集群
    • 一、说明
    • 二、安装redis
    • 三、快速启动单机redis
    • 四、搭建三节点redis集群(三主):全部节点都可以用,集群才可用
    • 五、搭建三节点redis集群(三主):一半以上节点可用,就可用
    • 六、搭建六节点redis集群(三主三从)

一、说明

从单机redis到redis集群,通过一行命令直接完成。

  1. 启动单机redis;
  2. 三节点redis集群(三主);
  3. 六节点redis集群(三主三从);

redis到配置参数即可以写到配置文件中,也可以放在启动命令后面。下面是快速搭建和启动,因此所有的参数都放在命令后面。

二、安装redis

从官网下载zip包(Install Redis from source):https://redis.io/downloads/

[download 6.2.14](https://download.redis.io/releases/redis-6.2.14.tar.gz).

解压,之后编译安装:

$ tar -zxvf softs/redis-6.2.14.tar.gz -C servers/
$ make && make install

三、快速启动单机redis

先创建两个文件夹:

$ cd redis-6.2.14/
$ mkdir -p {logs,data}

运行启动命令:

注意:logfile需要写绝对路径。

./src/redis-server --port 6379 --dir /Users/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6379.aof --dbfilename dump-6379.rdb --logfile /Users/Downloads/dev/servers/redis-6.2.14/logs/6379.log --daemonize yes

执行成功,就启动成功了。

四、搭建三节点redis集群(三主):全部节点都可以用,集群才可用

先创建三个文件夹:

$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}

然后执行运行脚本:create-redis-cluster-3.sh

不需要创建其它的文件

$ cd redis-6.2.14/
$ bash create-redis-cluster-3.sh

脚本内容如下:

## create a local redis cluster for 3 nodes

echo "start $N redis-server for 6000-6002..."
echo "6000"

echo "6000"
./src/redis-server --port 6000 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6000.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6000.aof --dbfilename dump-6000.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6000.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6000.log --daemonize yes
echo "6001"
./src/redis-server --port 6001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6001.aof --dbfilename dump-6001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6001.log --daemonize yes
echo "6002"
./src/redis-server --port 6002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6002.aof --dbfilename dump-6002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6002.log --daemonize yes


sleep 2
## create a local redis cluster
## 构建集群
echo "create cluster... "
./src/redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 --cluster-replicas 0

sleep 1
## 检验集群状态
./src/redis-cli -p 6000 cluster nodes

五、搭建三节点redis集群(三主):一半以上节点可用,就可用

先创建三个文件夹:

$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}

然后执行运行脚本:create-redis-cluster-no-full-3.sh

不需要创建其它的文件

$ cd redis-6.2.14/
$ bash create-redis-cluster-no-full-3.sh

脚本内容如下:

## create a local redis cluster for 3 nodes

echo "start $N redis-server for 6000-6002..."
echo "6000"

echo "6000"
./src/redis-server --port 6000 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6000.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6000.aof --dbfilename dump-6000.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6000.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6000.log --cluster-require-full-coverage no --daemonize yes
echo "6001"
./src/redis-server --port 6001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6001.aof --dbfilename dump-6001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6001.log --cluster-require-full-coverage no --daemonize yes
echo "6002"
./src/redis-server --port 6002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6002.aof --dbfilename dump-6002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6002.log --cluster-require-full-coverage no --daemonize yes


sleep 2
## create a local redis cluster
## 构建集群
echo "create cluster... "
./src/redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 --cluster-replicas 0

sleep 1
## 检验集群状态
./src/redis-cli -p 6000 cluster nodes

六、搭建六节点redis集群(三主三从)

先创建三个文件夹:

$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}

然后执行运行脚本:create-redis-cluster-6-3m3s.sh

不需要创建其它的文件

$ cd redis-6.2.14/
$ bash create-redis-cluster-6-3m3s.sh

脚本内容如下:

## create a local redis cluster for 6 nodes

N=6

### nohup redis-server --port 7004 --cluster-enabled yes --cluster-config-file nodes-7004.conf --cluster-node-timeout 3000 --appendonly yes --appendfilename appendonly-7004.aof --dbfilename dump-7004.rdb --logfile 7004.log --daemonize yes &

## create 6 redis server for 7000-7005
echo "start $N redis-server for 7000-7005..."
echo "7001"
./src/redis-server --port 7001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7001.aof --dbfilename dump-7001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7001.log --cluster-require-full-coverage no --daemonize yes
echo "7002"
./src/redis-server --port 7002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7002.aof --dbfilename dump-7002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7002.log --cluster-require-full-coverage no --daemonize yes
echo "7003"
./src/redis-server --port 7003 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7003.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7003.aof --dbfilename dump-7003.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7003.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7003.log --cluster-require-full-coverage no --daemonize yes
echo "7004"
./src/redis-server --port 7004 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7004.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7004.aof --dbfilename dump-7004.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7004.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7004.log --cluster-require-full-coverage no --daemonize yes
echo "7005"
./src/redis-server --port 7005 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7005.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7005.aof --dbfilename dump-7005.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7005.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7005.log --cluster-require-full-coverage no --daemonize yes
echo "7006"
./src/redis-server --port 7006 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7006.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7000.aof --dbfilename dump-7006.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7006.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7006.log --cluster-require-full-coverage no --daemonize yes


sleep 2
## create a local redis cluster
## 构建集群
./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1

sleep 1
## 检验集群状态
./src/redis-cli -p 7001 cluster nodes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/747331.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣每日一题 特别的排列 DFS 记忆化搜索 位运算 状态压缩DP

Problem: 2741. 特别的排列 👨‍🏫 参考题解 🍻 暴搜 ⏰ 时间复杂度: O ( N ) O(N) O(N) class Solution {public int specialPerm(int[] nums) {boolean[] visited new boolean[nums.length];return dfs(nums, 0, -1, visit…

Stm32的DMA的学习

一,介绍 二,DMA框图 三,DMA通道 四,相关HAL库函数 五,配置DMA 六,Stm32CubeMX配置 【13.1】减少CPU传输负载 DMA直接存储器访问—Kevin带你读《STM32Cube高效开发教程基础篇》_哔哩哔哩_bilibili

机票、火车票,YonSuite让企业支出笔笔可控

在数字化浪潮的推动下,企业的商旅管理正迎来一场深刻变革。传统的手动预订、报销模式已无法满足现代企业对效率和成本控制的双重要求。YonSuite商旅费控,作为一款领先的企业商旅管理平台,正以其独特的优势,帮助企业实现机票、火车…

【Android】多种方式实现截图(屏幕截图、View截图、长图)

目录 一、截图原理二、实现方式1. View截图2. WebView截图3. 屏幕截图 三、格式转换方法 一、截图原理 我们的手机一般同时按下音量-键和电源键就会将当前屏幕显示的内容截取下来,那里面具体经过哪些流程呢? Android中每一个页面都是一个Activity&#…

MySQL进阶_3.MySQL日志

文章目录 第一节、MySQL事务日志1.1、redo日志1.1.1、为什么需要REDO日志1.1.2、REDO日志的好处、特点1.1.3、redo的组成1.1.4、redo的整体流程 1.2、Undo日志1.2.1、如何理解Undo日志1.2.2、Undo日志的作用1.2.3、undo log的生命周期 第一节、MySQL事务日志 事务有4种特性&am…

Mybatis 系列全解(2)——全网免费最细最全,手把手教,学完就可做项目!

Mybatis 系列全解(2) 1. ResultMap结果集映射2. 日志2.1 日志工厂2.2 log4j 3. 分页3.1 实现SQL分页3.2 RowBounds 分页3.3 分页插件 4. 使用注解开发4.1 面向接口编程4.2 使用注解4.3 Mybatis 详细执行过程4.4 CRUD 增删改查 5. Lombok 1. ResultMap结果…

无人门店社区拼团小程序系统源码

​打造便捷购物新体验 🛒 引言:社区购物新趋势 随着科技的飞速发展,无人门店和社区拼团已经成为购物的新趋势。而结合这两者的“无人门店社区拼团微信小程序”更是为我们带来了前所未有的便捷购物体验。无需排队、无需现金交易,只…

营销能力大提升:6步策略助你成为市场精英

作为一名拥有9年经验的营销老兵,道叔有一些心得想要分享给每一位在营销领域奋斗的朋友。 在这个快速变化的行业里,除了掌握营销的专业知识,还有一些技能和视角是我们必须掌握的。 1. 培养业务视角 你有没有注意到,现在企业在投…

[word] 如何在word中插入地图? #学习方法#其他

如何在word中插入地图? 人事部门在给即将入职的新员工发送入职资料时,为了方便新员工能快速找到公司的具体位置,一般都会在word资料中插入公司所在位置的地图。今天,小编就分享一个在word中插入地图的方法。 第一步:…

Linux 扩容 根分区

CentOS7,LVM根分区扩容步骤: LVM扩容思维流程:创建一个物理分区–>将这个物理分区转换为物理卷–>把这个物理卷添加到要扩展的卷组中–>然后才能用extend命令扩展此卷组中的逻辑卷 1.查看现有分区大小 df -TH 2.关机增加大小为40G(测试环境使用的Vmware Workstati…

FPGA开发技能(7)Vivado设置bit文件加密

文章目录 前言1. AES加密原理2.xilinx的AES方案3.加密流程3.1生成加密的bit流3.2将密钥写入eFUSE寄存器 4.验证结论5.传送门 前言 在FPGA的项目发布的时候需要考虑项目工程加密的问题,一方面防止自己的心血被盗,另一方面也保护公司资产,保护知…

使用conda安装第三方包报错CondaSSLError

使用conda安装第三方包报错CondaSSLError 1. 报错信息2. 解决方法 1. 报错信息 错误描述:刚刚下载的 anaconda 在使用 conda 安装 pytorch 时报错(CondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is required to download …

Python数据分析第一课:Anaconda的安装使用

Python数据分析第一课:Anaconda的安装使用 1.Anaconda是什么? Anaconda是一个便捷的获取包,并且对包和环境进行管理的虚拟环境工具,Anaconda包括了conda、Python在内的超过180多个包和依赖项 简单来说,Anaconda是包管理器和环境…

1变3裂变营销,七星创客模式,推三返一模式解析

推三返一模式的出现让我们看到,在商业竞争中,创新的商业模式与良好的产品服务相结合,才能真正赢得市场和消费者的心。 推三返一又称为“三三循环”模式,是一种简单粗暴的营销模式,消费者通过直接推荐三个新用户到平台消…

Java后端 || ElementUI 显示后端树形表格数据

文章目录 1、前端源码2、数据库设计3、后端设计3.1、实体类3.2、Controller层3.3、具体树形列表后端代码实现 1、前端源码 ElementUI Table 链接 在此链接中找到 树形数据与懒加载 查看其JS源码,可知,每个菜单节点的子节点存放于children字段中&#x…

天润融通助力立升净水,AI技术打造全天候智能客服体系

水,作为生命之源,其纯净度直接关系到人类的健康与社会的可持续发展。 在工业化和城市化进程的不断推进中,我们面临着土壤、空气等环境因素对饮用水质量的挑战。近期的公共卫生事件更是将饮用水安全问题推到了公众视野的中心,引发…

【论文阅读】-- Temporal Summary Images:通过交互式注释生成和放置实现叙事可视化的方法

Temporal Summary Images: An Approach to Narrative Visualization via Interactive Annotation Generation and Placement 摘要1 引言2 背景及相关工作2.1 叙事可视化和讲故事2.2 显示面向时间的数据2.3 小倍数和漫画2.4 注释可视化 3 设计要求和工作流程3.1 工作流程3.2 TSI…

科技未来·无限可能“2024世亚智博会”

随着科技的飞速发展,人类社会正以前所未有的速度迈向一个全新的时代。科学技术作为第一生产力,不仅极大地推动了经济和社会的发展,更在不断地改变着我们的生活方式和思维方式。特别是在人工智能、物联网等前沿科技领域,其创新和应…

搜索引擎的妙用:掌握这些技巧,让你的搜索更高效!

搜索引擎是我们日常生活中不可或缺的工具,它帮助我们快速找到所需的信息。但是,你真的知道如何高效地使用搜索引擎吗?下面,我将分享一些高级搜索技巧,让你的搜索更加精准和高效。 1. 完全匹配搜索 当你想要搜索一个特…

OutOfMemoryError能被catch(Exception)捕获吗?

背景 写了一个 Kafka 消费者程序,Kafka 集群中数据量过大时,消费线程无故退出了,日志打印了心跳 OOM 异常信息: 但是消费线程里面的 run 方法里面明明包含了 catch (Exception e) ,结尾信息没有打印异常,…