redis集群部署

redis集群部署

本次部署为三台服务器,部署三主集群和三主三从集群

1.IP主从规划

规划IP主机名
192.168.2.57master
192.168.2.197slaves1
192.168.2.43slaves2

三个主节点分别是:192.168.2.57:6379、192.168.2.197:6379、192.168.2.43:6379

三个从节点分别是:192.168.2.57:6380、192.168.2.197:6380、192.168.2.43:6380

2.放置redis安装包

将redis安装包上传进master节点的/apps/scripts目录下,实例为:redis-6.0.13.tar.gz

[root@master /]# mkdir -p /apps/scripts
[root@master /]# chmod +x -R /apps/
# 将redis安装包上传到/apps/scripts/目录下

3.依赖安装

[root@master scripts]# yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc

4.解压、编译、安装

[root@master ~]# cd /apps/scripts/
[root@master scripts]# tar -zxf redis-6.0.13.tar.gz -C ./
[root@master scripts]# cd redis-6.0.13
[root@master redis-6.0.13]# make
# 部署redis 6版本依赖与gcc 5.3以上,若gcc版本太低,在编译过程中会报错

在这里插入图片描述
在这里插入图片描述

# 升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable">> /etc/profile

在这里插入图片描述
再次编译

[root@master redis-6.0.13]# make

已经不存在报错信息
在这里插入图片描述

安装

[root@master redis-6.0.13]# make install

在这里插入图片描述

安装成功

默认安装路径为:/usr/local/bin/

在这里插入图片描述

5.redis配置

复制安装之后的redis相关文件(master节点)

[root@master redis-6.0.13]# cp /usr/local/bin/redis-* /data/redis-cluster/redis_6379/

编辑redis配置文件(master节点)

[root@master redis-6.0.13]# cp /apps/scripts/redis-6.0.13/redis.conf /data/redis-cluster/redis_6379/
[root@master redis-6.0.13]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# vi redis.conf 

修改内容如下:

bind 127.0.0.1 -> bind 192.168.2.57(改为实际内网IP或0.0.0.0)
port 6379保持不变(监听端口)
daemonize no  -> daemonize yes(以独立进程打开)
appendonly no 保持不变(关闭持久化)取消以下配置文件注释
#cluster-enabled yes
#cluster-config-file nodes-6379.conf
#cluster-node-timeout 15000取消注释后如下:
cluster-enabled yes  (开启集群模式)
cluster-config-file nodes-6379.conf (生成集群配置文件)
cluster-node-timeout 15000(集群超时时间)注释以下配置:
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb注释后如下:
#save 900 1
#save 300 10
#save 60 10000
#dbfilename dump.rdb设置密码:
#requirepass foobared
#masterauth <master-password>设置为:
requirepass apps123(redis密码)
masterauth apps123(主节点密码,各个实例密码要求一致)

启动redis实例

[root@master redis_6379]# nohup ./redis-server redis.conf >> /dev/null &[root@master redis_6379]# nohup ./redis-server redis.conf > /dev/null 2>&1 &

在这里插入图片描述

在这里插入图片描述

停止redis实例

[root@master redis_6379]# ps -ef | grep redis
root       6272      1  0 16:30 ?        00:00:00 ./redis-server 192.168.2.57:6379 [cluster]
root       6280   5723  0 16:30 pts/0    00:00:00 grep --color=auto redis
[root@master redis_6379]# kill -9 6272

到此,主节点部署完毕,剩余两个节点方法一致

6.三主模式模式配置

创建redis集群目录(三台服务器都需要创建)

[root@master redis-6.0.13]# mkdir -p /data/redis-cluster/redis_6379

将master节点配置好的redis复制进两个从节点

# 复制前,先将master节点的redis进程结束,删除生成的nodes-6379.conf配置文件
[root@master redis_6379]# rm -rf nodes-6379.conf 
[root@master redis_6379]# scp -r ./* root@192.168.2.197:/data/redis-cluster/redis_6379/
[root@master redis_6379]# scp -r ./* root@192.168.2.43://data/redis-cluster/redis_6379/

修改两个从节点配置,只需将bind后边的IP为实际的IP

[root@slaves1 ~]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# vi redis.conf
# 修改bind 192.168.2.57后边的IP为实际IP

将三个节点的redis都启动之后,进入任意节点,创建三主集群:

# 三个实例全部启动成功之后,选择任意节点执行
[root@slaves1 ~]# cd /data/redis-cluster/redis_6379/
[root@slaves1 ~]# ./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 -a apps123# 注意,三台实例的redis必须全部启动完成,且服务器之间端口需要能访问(关闭防火墙)

在这里插入图片描述

集群状态检查

[root@slavers2 redis_6379]# ./redis-cli --cluster check 192.168.2.57:6379 -a apps123[root@slavers2 redis_6379]# ./redis-cli --cluster check 172.10.34.20:6379 -a apps123

在这里插入图片描述

至此,redis三主集群配置完成。

7.三主三从模式

停止三个节点的redis进程,删除各节点生成的配置文件。 (以下操作三个节点均需要进行调整)

[root@master redis_6379]# pkill redis
[root@master redis_6379]# rm -rf nodes-6379.conf

复制配置完成的redis_6379文件,将其复制,且修改文件夹名称为:redis_6380

[root@master redis-cluster]# cp -rp redis_6379 redis_6380

切换进redis_6380文件夹,修改redis.conf配置文件中的6379为6380

[root@master redis-cluster]# cd redis_6380/
[root@master redis_6380]# vi redis.conf

注:可使用命令对整个文件进行替换

# 用法详解:
# sed -i 's/str1/str2/g'  filename
# str1: 旧字符 str2: 新字符[root@master scripts]# sed -i 's/6379/6380/g' redis.conf

启动6个实例,并创建三主三从集群

[root@master ~]# cd /data/redis-cluster/redis_6379/
[root@master redis_6379]# nohup ./redis-server redis.conf >> /dev/null &[root@master redis_6379]# cd ../redis_6380/
[root@master redis_6380]# nohup ./redis-server redis.conf >> /dev/null &

在这里插入图片描述

# 六个实例全部启动成功之后,创建三主三从集群(任意节点的任意服务下执行即可)
[root@master redis_6380]# ./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 192.168.2.57:6380 192.168.2.197:6380 192.168.2.43:6380 --cluster-replicas 1  -a apps123

在这里插入图片描述

集群状态检查

[root@slavers2 redis_6380]# ./redis-cli --cluster check 192.168.2.57:6379 -a apps123

在这里插入图片描述

至此,redis三主三从集群搭建完成,在同时存在三个redis服务时,整体集群不受影响。

切换为主库

# 将新从库重新切换为主库
[root@redis-1 ~]# ./redis-cli -h 192.168.2.57 -p 6379 -a apps123192.168.2.57:6379> CLUSTER FAILOVER
OK

8.redis升级

实例将redis-6.0-13升级为6.0.17

上传6.0.17安装包至/apps/scripts/,解压、编译、安装(redis集群路径为:/data/redis-cluster/)

1.备份集群路径下的老版本安装文件;

2.在/usr/local/bin/路径下,找到新版本的安装文件,移动进集群目录;

3.将/apps/scripts/redis-6.0.17文件夹下的redis.conf文件复制进/data/redis-cluster/xxxx/文件夹下,并按5中修改redis.conf;

4.停止所有节点的所有redis服务,删除节点下生成的dump.rdb及nodes-xxx.conf;

5.启动redis各个节点的各个进程,使用命令创建三主或三主三从。

9.命令备注

# 启动
nohup ./redis-server redis.conf > /dev/null 2>&1 &# 创建三主集群
./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 -a apps123# 创建三主三从集群
./redis-cli --cluster create 192.168.2.57:6379 192.168.2.197:6379 192.168.2.43:6379 192.168.2.57:6380 192.168.2.197:6380 192.168.2.43:6380 --cluster-replicas 1  -a apps123# 测试集群状态
./redis-cli --cluster check 192.168.2.57:6379 -a apps123./redis-cli --cluster check 192.168.2.57:6380 -a apps123

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++QT day 5

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…

linus调试器---gdb的操作介绍

目录 一.背景 二.gdb的常用的操作介绍 小技巧&#xff1a;gdb会记住上一次的命令&#xff0c;按回车即可打出上次的命令。 1.看代码 2.打断点 3.删断点 4.禁用与开启断点 5.查看断点信息 6.调试 7.调试 8.查看变量 9.运行至某行 10.打印变量值 11.从一断点直接运行…

决策树案例分析

决策树(Decision Tree)常用于研究类别归属和预测关系的模型&#xff0c;比如是否抽烟、是否喝酒、年龄、体重等4项个人特征可能会影响到‘是否患癌症’&#xff0c;上述4项个人特征称作‘特征’&#xff0c;也即自变量&#xff08;影响因素X&#xff09;&#xff0c;‘是否患癌…

超低功耗段码LCD液晶显示驱动IC-VKL144A/BQFN48超小体积液晶驱动

产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;TSSOP48/QFN48L 产品年份&#xff1a;新年份 沈先生 135 、547/44,703 原厂&#xff0c;工程服务&#xff0c;技术支持&#xff01; VKL144A/B 概述: VKL144A/B 是一个点阵式存储映射的LCD 驱动器&#xff0c;可…

AI助力安全监管:TSINGSEE视频智能分析系统烟火识别算法

水火无情人有情&#xff0c;火灾一旦发生没有被及时发现&#xff0c;就能在极短的时间内酿成无法挽回的大祸&#xff0c;所以烟火的监管与处理极为重要。为了让火患在刚发生时就能得到扼制&#xff0c;TSINGSEE青犀AI智能分析网关烟火识别算法具有重要意义。 TSINGSEE青犀AI智能…

国际版腾讯云/阿里云:全站加快有哪些功用?有哪些优势?适用于什么场景?

腾讯云全站加快有哪些功用&#xff1f;有哪些优势&#xff1f;适用于什么场景&#xff1f; 产品功用 全站加快 ECDN 经过在全球各区域部署加快节点&#xff0c;有用下降跨国拜访推迟&#xff0c;保证全球加快作用。 最优链路 各加快节点两两相连&#xff0c;实时勘探&#xff0…

MySQL BufferPool缓存与Redo日志是如何提升事务性能的

文章目录 引言一、BufferPool缓存的作用与优势1.1 BufferPool缓存的定义与作用1.2 BufferPool缓存的作用1.3 Change Buffer 作用 二、BufferPool缓存的优势2.1 减少磁盘IO操作的次数2.2 提高数据的读取速度2.3 减轻磁盘负载&#xff0c;提升整体系统性能 三、BufferPool缓存的工…

web浏览器公网远程访问jupyter notebook【内网穿透】

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook&#xff0c;它是一个交互式的数据科学和计算环境&#xff0c;支持多种编程语言&#xff0c;如…

选择器进阶与表单表格

华子目录 选择器并集选择器后代选择器子代选择器伪类选择器伪元素选择器结构选择器属性选择器相邻选择器 表单&#xff08;form&#xff09;label标签 表格&#xff08;table标签&#xff09;合并单元格 选择器 下面是我们之前学习过的选择器 *{}&#xff1a;通配符选择器&am…

GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通

文章目录 前言一、关于数据仓库需求场景分类二、数据仓库线下部署场景2.1、线下部署场景介绍及优劣势说明2.2、线下部署场景对应的客户需求 三、数据仓库公有云部署场景3.1、公有云部署场景介绍及优劣势说明3.2、公有云部署场景对应的客户需求 四、为何重视数据共享&#xff08…

Mybatis中动态SQL标签和内置参数介绍

Mybatis中动态SQL标签和内置参数 一、MyBatis动态SQL 1.1、sql标签 sql标签用于抽取公用的SQL代码&#xff0c;定义sql标签的时候需要通过【id】属性设置唯一标识。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-…

怎么压缩word文档?

怎么压缩word文档&#xff1f;在互联网技术飞速发展的当代&#xff0c;我们越来越多地依赖于电子文档来传递信息。然而&#xff0c;有时候文件的大小会成为我们传输和存储的一大限制。就拿我们每天都需要使用到的word文档来说吧&#xff0c;我们经常会使用到非常多的word文档&a…

linux 强大的搜索命令 grep

单文件搜索grep 搜索内容 文件多文件搜索 grep -r ‘搜索内容’ 目录

C#,《小白学程序》第二十六课:大数乘法(BigInteger Multiply)的Toom-Cook 3算法及源程序

凑数的&#xff0c;仅供参考。 1 文本格式 /// <summary> /// 《小白学程序》第二十六课&#xff1a;大数&#xff08;BigInteger&#xff09;的Toom-Cook 3乘法 /// Toom-Cook 3-Way Multiplication /// </summary> /// <param name"a"></par…

Ansible自动化:简化你的运维任务

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Matlab图像处理-HSI模型

HSI模型 HSI模型是从人的视觉系统出发&#xff0c;直接使用颜色三要素色调(Hue)、饱和度(Saturation)和亮度&#xff08;Intensity&#xff09;来描述颜色。 亮度是指人眼感知光线的明暗程度。光的能量越大&#xff0c;亮度就越大。 色调是颜色最重要的属性。 它决定了颜色的…

GeoServer(配合Tomcat)安装与配置

GeoServer是什么&#xff1f; GeoServer是用于共享地理空间数据的开源服务器。专为互操作性而设计&#xff0c;它使用开放标准发布来自任何主要空间数据源的数据。GeoServer实现了行业标准的OGC协议&#xff0c;例如Web功能服务 (WFS)&#xff0c;Web地图服务 (WMS) 和Web覆盖…

C++之vector迭代器函数begin、end、rebegin、rend、cbegin、cend、crbegin、crend总结(二百零一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

深度学习(Python)学习笔记2

第二章 感知机 2.1 感知机是什么 感知机接收多个输入信号,输出一个信号。 感知机的信号会形成流,向前方输送信息。 感知机的信号只有“流/不流”(1/0)两种取值。 本学习笔记中,0对应“不传递信号”,1对应“传递信号”。 图中、是输入信号,是输出信号,、是权重。图…

小米6/6X/米8/米9手机刷入鸿蒙HarmonyOS.4.0系统-刷机包下载-遥遥领先

小米手机除了解锁root权限&#xff0c;刷GSI和第三方ROM也是米粉的一大爱好&#xff0c;这不&#xff0c;在华为发布了HarmonyOS.4.0系统后不久&#xff0c;我们小米用户也成功将自己的手机干山了HarmonyOS.4.0系统。虽然干上去HarmonyOS.4.0系统目前BUG非常多&#xff0c;根本…