Reids Cluster集群部署

news2024/11/18 22:57:36

服务器端口说明

vim /etc/hosts

Reids Cluster集群部署

1.下载、解压、编译Redis

$ mkdir -p /opt/redis && cd /opt/redis
$ wget http://download.redis.io/releases/redis-6.0.6.tar.gz
$ tar xzf redis-6.0.6.tar.gz

请先检查gcc的版本是否低于5,如果是请先升级,可以使用以下命令:

gcc --version

Reids Cluster集群部署

执行如下代码进行更新

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7-gcc*
$ scl enable devtoolset-7 bash

若上面命令执行没有相关包则手动下载版本更新

yum install gcc -y
yum install gcc-c++ -y
yum install bzip2
cd /tmp
wget http://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
tar xvf gcc-7.5.0.tar.gz
cd gcc-7.5.0
./contrib/download_prerequisites (下载较慢,成功会有提示)
mkdir build
cd build/
../configure --prefix=/usr/local/gcc7 --enable-languages=c,c++,go --disable-multilib
make
make install
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /usr/local/gcc7/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /usr/local/gcc7/bin/g++ /usr/bin/g++

编译安装Redis

$ cd /opt/redis/redis-6.0.6/
$ make
$ make install PREFIX=/usr/local/redis #安装到指定目录中

2、启动服务

2.1 前台启动

简单的测试一下,单机安装就看看2.2,集群咱们直接跳过,看目录4,目录2.2和目录3都是给单机准备的,不做单独写了。

$ cd /usr/local/redis/bin/
$ ./redis-server

显示如下说明安装成功

Reids Cluster集群部署

2.2 后台启动(先别弄,单机可以用)

从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录

$ cp /opt/redis/redis-6.0.6/redis.conf /usr/local/redis/bin/

修改 redis.conf 文件,把 daemonize no 改为 daemonize yes

$ cd /usr/local/redis/bin/
$ vim redis.conf

Reids Cluster集群部署

$ ./redis-server redis.conf

如下启动成功

Reids Cluster集群部署

3、设置开机启动(下面要配置集群,这一步先别做)单机单应用推荐使用

添加开机启动服务

[root@localhost bin]# vi /etc/systemd/system/redis.service

复制粘贴以下内容:

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

设置开机启动

[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl start redis.service
[root@localhost bin]# systemctl enable redis.service
# 创建 redis 命令软链接
[root@localhost ~]# ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis
#测试 redis
[root@localhost ~]#  redis

Reids Cluster集群部署

服务操作命令

systemctl start redis.service   #启动redis服务
systemctl stop redis.service   #停止redis服务
systemctl restart redis.service   #重新启动服务
systemctl status redis.service   #查看服务当前状态
systemctl enable redis.service   #设置开机自启动
systemctl disable redis.service   #停止开机自启动

4.集群部署前的准备

1.复制redis_init_script,重命名为redis_7001
$ cp /opt/redis/redis-6.0.6/utils/redis_init_script /etc/init.d/redis_7001
2.创建两个文件夹
$ mkdir -p /etc/redis(存放redis的配置文件)
$ mkdir -p /var/redis/7001(存放redis的持久化文件)
$ mkdir -p /var/log/redis (存放redis的日志文件)
3.修改redis_7001配置文件
   3.1 redis_7001端口号,修改redis_7001脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379,设置为7001)
   3.2 修改安装目录执行文件路径
$ vim /etc/init.d/redis_7001

Reids Cluster集群部署

4.复制Redis.conf拷贝到/etc/redis目录中,修改名称为7001.conf

$ cp /opt/redis/redis-6.0.6/redis.conf /etc/redis/7001.conf
5.修改配置文件

$ vim /etc/redis/7001.conf
·port 7001
·cluster-enabled yes
·cluster-config-file /etc/redis/node-7001.conf(注意:这喵的不是配置文件地址,需要,这是节点配置文件,可以放在其他位置,但是不能写配置文件7001.conf)
·cluster-node-timeout 15000
·daemonize yes
·pidfile /var/run/redis_7001.pid
·dir /var/redis/7001
·logfile /var/log/redis/7001.log
·bind 0.0.0.0
·appendonly yes
6.启动redis,执行
$ cd /etc/init.d
$ chmod 777 redis_7001
$ ./redis_7001 start
7.最后在执行
chkconfig让节点主机重启直接启动
$  cd /etc/init.d/
$  chkconfig redis_7001 on

$  shutdown -r now   #重启检查
$ ps aux|grep redis

Reids Cluster集群部署

重复上面的步骤,分别做出6份配置文件:

7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf
redis_7001,redis_7002,redis_7003,redis_7004,redis_7005,redis_7006
分别重启后先检查下redis状态是不是6个服务都全部启动。

重要的事情说三遍

最后查看三台机器服务情况,添加开机启动重启验证
最后查看三台机器服务情况,添加开机启动重启验证
最后查看三台机器服务情况,添加开机启动重启验证

Reids Cluster集群部署

Reids Cluster集群部署

Reids Cluster集群部署

5.创建集群

redis 4.0集群部署

redis 4.0版本安装集群需要Ruby命令,因此我们需要安装下Ruby,在集群机器中随便找一台执行即可,直接通过yum安装的ruby版本太低,不能满足redis、fpm等软件的需求。我上面安装的是6.0版本,这里记录一下4.0版本安装的过程。

和我一起做安装6.0的小伙伴看这里 redis 6.0集群部署

我们安装最新的版本的ruby,下载地址 Download Ruby

#安装依赖包
$ yum -y install openssl-devel make  
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7-gcc*
$ scl enable devtoolset-7 bash
$ mkdir -p /opt/ruby && cd /opt/ruby
$ wget https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0.tar.gz
$ tar -zxvf ruby-3.0.0.tar.gz
$ cd ruby-3.0.0/
$ ./configure --prefix=/usr/local/ruby
$ make
$ make install
#添加环境变量
$ echo "PATH=$PATH:/usr/local/ruby/bin" >> /etc/bashrc
$ source /etc/bashrc
#替换gem源  
#这个我没有做这个源添加不上去
$ gem sources -l		#查看当前源
$ gem sources -a http://gems.ruby-china.com/      #增加源
$ gem sources --remove https://rubygems.org/      #删除原有源
$ cp /opt/redis/redis-6.0.6/src/redis-trib.rb /usr/local/bin/redis-trib.rb
$ cd /usr/local/bin/
$ redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.129:7003 192.168.32.129:7004 192.168.32.130:7005 192.168.32.130:7006

redis 6.0集群部署

开始进行集群部署安装

6.0版本redis按照4.0配置的小伙伴看看这里
WARNING: redis-trib.rb is not longer available!  

今天安装redis centos7集群的时候 没有注意redis-trib.rb脚本的内容,使用时报上面的警告,原因是因为redis5.0以后使用redis-cli作为创建集群的命令,使用c语言实现,不再使用ruby语言。所以上面的ruby可能是不需要了

使用下面命令创建集群
$cd /opt/redis/redis-6.0.6/src
$ ./redis-cli --cluster create 192.168.32.128:7001 192.168.32.128:7002 192.168.32.129:7003 192.168.32.129:7004 192.168.32.130:7005 192.168.32.130:7006 --cluster-replicas 1

Reids Cluster集群部署

连接到任一一个节点上面使用命令查看集群信息

/usr/local/redis/bin/redis-cli -h 192.168.32.130 -p 7005 -c

cluster info
cluster nodes
如下展示配置成功,收工回家

Reids Cluster集群部署

新增master节点

Reids Cluster集群部署

我们可以使用add-node命令为Redis Cluster新增master节点,可以看到我们增加的是6679节点,新增成功后,并不会为任何slot提供服务。

新增slave节点

Reids Cluster集群部署

我们也可以用add-node命令新增slave节点,只不过需要加上–cluster-slave参数,并且使用–cluster-master-id指明新增的slave属于哪个master。

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

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

相关文章

Java基础实战:Java中的引用类型(强软弱虚)

下面是一个在下面引用实战中用到的公共类 public class M {Overrideprotected void finalize() throws Throwable{System.out.println("finalize");} }finalize()方法是执行gc时调用的方法。 一、强引用 强引用是默认的引用类型。当一个对象具有强引用时&#xff…

深度学习-经典网络解析-VGG-[北邮鲁鹏]

这里写目录标题 VGG参考VGG网络贡献使用尺寸更小的 3 3 3 \times 3 33卷积串联来获得更大的感受野放弃使用 11 11 11 \times 11 1111和 5 5 5 \times 5 55这样的大尺寸卷积核深度更深、非线性更强,网络的参数也更少;去掉了AlexNet中的局部响应归一化层…

大模型赛道如何实现华丽的弯道超车【赠书活动|第十期《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》】

文章目录 01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率,降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署01 通过数据抽象化统一数据孤岛02 通过分布式缓存实现数据本地性03 优化整个工作流的数据共享04 通…

【Java实战项目】【超详细过程】—— 大饼的图片服务器

目录 一.下载前端模板二. 展示图片(index.htmll)1. 标题2. 页面跳转链接3. 图片展示引入js和vue依赖:写在html文件的head中js代码:写在html文件中的body中html代码:写在html文件的body中 二. 删除图片在上面的vue对象a…

【OWASP如何导出测试报告】

为什么我的OWASP无法导出报告?明明已经扫描完成了

【Linux从入门到精通】多线程 | 线程介绍线程控制

本篇文章主要对线程的概念和线程的控制进行了讲解。其中我们再次对进程概念理解。同时对比了进程和线程的区别。希望本篇文章会对你有所帮助。 文章目录 一、线程概念 1、1 什么是线程 1、2 再次理解进程概念 1、3 轻量级进程 二、进程控制 2、1 创建线程 pthread_create 2、2…

Postgresql与执行计划相关的配置项

1. ENABLE_*参数 在PostgreSQL中有一些以“ENABLE_”开头的参数,这些参数提供了影响查询优化器选择不同执行计划的方法。有时,如果优化器为特定查询选择的执行计划并不是最优的,可以设置这些参数强制优化器选择一个更好的执行计划来临时解决这…

java开发之个微朋友圈机器人的开发

简要描述: 取消点赞 请求URL: http://域名地址/snsCancelPraise 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明…

分子对接简介-2023

分子对接简介-2023 分子对接(Molecular Docking)是分子模拟的重要方法之一,其本质是两个或多个分子之间的识别过程,其过程涉及分子之间的空间匹配和能量匹配。这项技术在药物研发、生物医学研究和药物设计中具有广泛的应用&#…

简明 SQL 组合查询指南:掌握 UNION 实现数据筛选

在SQL中,组合查询是一种将多个SELECT查询结果合并的操作,通常使用UNION和UNION ALL两种方式。 UNION 用于合并多个查询结果集,同时去除重复的行,即只保留一份相同的数据。UNION ALL 也用于合并多个查询结果集,但不去除…

MapRdeuce工作原理

hadoop - (三)通俗易懂地理解MapReduce的工作原理 - 个人文章 - SegmentFault 思否 MapReduce架构 MapReduce执行过程 Map和Reduce工作流程 (input) ->map-> ->combine-> ->reduce-> (output) Map: Reduce

腾讯mini项目-【指标监控服务重构】2023-07-27

今日已办 SigNoz Log Management SigNoz原生支持 OpenTelemetry 来收集日志,SigNoz 在收集器端进行了优化,为SigNoz中的日志添加了不同的功能。 OpenTelemetry 提供了各种接收器和处理器,用于直接通过 OpenTelemetry Collector 或通过 Flue…

Everything+cpolar内网穿透轻松实现公网远程访问本地硬盘文件

公网远程访问本地硬盘文件【内网穿透】 文章目录 公网远程访问本地硬盘文件【内网穿透】前言1. 下载cpolar和Everything软件3. 设定http服务器端口4. 进入cpolar的设置5. 生成公网连到本地内网穿透数据隧道 总结 前言 随着云概念的流行,不少企业采用云存储技术来保…

建筑模板的抗震性能如何评估和测试?

评估和测试建筑模板的抗震性能通常涉及以下几个方面: 1. 材料测试:首先,需要对建筑模板所使用的材料进行力学性能测试。这包括测量材料的抗弯强度、抗压强度、剪切强度等参数。这些测试可以通过标准化的实验方法进行,例如使用万能…

Gavin Wood 演讲全文:建设更具韧性以应变化的 Polkadot

我们非常激动能邀请到 Gavin Wood 博士来现场分享关于 Polkadot 的近况以及最新的进展,带来他对于《加密项目应该怎样应对当今世界的变化》的演讲分享。 🚩点击视频链接观看演讲实录:https://www.youtube.com/watch?vYw3mQNJ5UJQ&t1048s…

数据驱动的仿真

数据驱动的仿真 数据驱动的仿真(1)动态状态估算。(2)在线模型调整。(3)动态事件重构。 数据驱动的仿真 数字孪生体之所以与传统仿真不同,是因为它产生之初就是数据驱动的。早在1979年&#xff…

10英寸及以上占比超7成!车载大屏保持高增速,哪些供应商在领跑?

中控大屏「上车」继续保持高增速态势。 高工智能汽车研究院监测数据显示,今年1-7月中国市场(不含进出口)乘用车前装标配搭载10英寸及以上大屏(含多联屏)交付775.16万辆,同比去年同期增长38.19%。 同时&am…

生信分析Python实战练习 7 | 视频24

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在:https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

Docker部署Canal监听MySQL binlog

文章目录 概念简述binlogCanal MySQL配置Canal配置创建挂载目录设置权限创建MySQl的Canal账户拉取镜像运行容器简单运行配置文件复制到宿主机修改配置文件删除之前运行的canal容器正式运行Canal容器 查看运行状态排查问题 概念简述 binlog MySQL的二进制日志binlog可以说是My…

支持向量机(SVM)案例分析

支持向量机(support vector machines, SVM)是一种二分类模型,所谓二分类模型是指比如有很多特征(自变量X)对另外一个标签项(因变量Y)的分类作用关系,比如当前有很多特征,…