Reids Cluster集群部署

服务器端口说明

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.mzph.cn/news/82301.shtml

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

相关文章

听GPT 讲Istio源代码--pilot(7)

File: istio/pilot/pkg/model/log.go 在Istio项目中,istio/pilot/pkg/model/log.go文件的作用是定义了Istio Pilot的日志记录功能。 该文件中定义了一个名为log的全局日志记录器,并且还定义了一些与日志记录相关的变量,如verbose、verboseCou…

从原理到实践 | Pytorch tensor 张量花式操作

文章目录 1.张量形状与维度1.1标量(0维张量):1.2 向量(1维张量):1.3矩阵(2维张量):1.4高维张量: 2. 张量其他创建方式2.1 创建全零或全一张量:2.2…

幸福里基于 Flink Paimon 的流式数仓实践

摘要:本文整理自字节跳动基础架构工程师李国君,在 Streaming Lakehouse Meetup 的分享。幸福里业务是一种典型的交易、事务类型的业务场景,这种业务场景在实时数仓建模中遇到了诸多挑战。本次分享主要介绍幸福里业务基于 Flink & Paimon …

git仓库推送错误

错误背景 从github克隆仓库后&#xff0c;想推送到gitee&#xff0c;在推送时遇到 error: src refspec master does not match any. error: failed to push some refs to <REMOTE_URL>解决方法 rm -rf .github git init git add -A git commit -m "init for gite…

Linux日志管理-logrotate(crontab定时任务、Ceph日志转储)

文章目录 一、logrotate概述二、logrotate基本用法三、logrotate运行机制logrotate参数 四、logrotate是怎么做到滚动日志时不影响程序正常的日志输出呢&#xff1f;Linux文件操作机制方案一方案二 五、logrotate实战--Ceph日志转储参考 一、logrotate概述 logrotate是一个用于…

数据结构--哈希表,哈希函数(或者散列表、散列函数)

目录 哈希表的定义 处理冲突的方法--拉链法 散列查找 常见的散列函数&#xff08;构造哈希函数&#xff09; 除留余数法 直接定址法 数字分析法 平方取中法 处理冲突的方法--开放定址法 &#xff08;1&#xff09;线性探测法&#xff1a; &#xff08;2&#xff09…

mall商城项目:只启动mall-admin情况下Windows环境的部署

文章目录 前提ideaMysql创建数据库mall,导入项目document/sql文件夹下的mall.sql文件,初始化数据RedisPostMan登录接口测试运行前提 mall项目gitee 如果项目只启动mall-admin,仅需安装MySQL、Redis即可 idea IDEA的安装与使用请参考搜索插件仓库,安装插件Lombok;将项目下…

记录--IR_cut切换模块流程

api接口&#xff1a;/API/ChannelConfig/ImageControl/Set /API/ChannelConfig/ImageControl/range /API/ChannelConfig/ImageControl/Get IR_cut步骤&#xff08;已自动模式为例&#xff09;&#xff1a; 1、一直跑IRCutService线程&#xff0c;检查环境光敏值 2、光敏值达…

laravel框架 - 辅助函数

Laravel 常用辅助函数 辅助函数 Laravel 包含各种全局辅助函数。 laravel 中包含大量辅助函数&#xff0c;您可以使用它们来简化开发工作流程。 array_dot() 辅助函数允许你将多维数组转换为使用点符号的一维数组 $array [user > [username > something],app > [c…

速腾聚创80线激光雷达ros驱动安装

1. 激光雷达硬件连接 1.1 工具准备 1.2 硬件连接 设置PC Ubuntu1804静态IP&#xff0c;速腾聚创16线激光雷达出厂默认发送到192.168.1.102&#xff0c;在连接前可以通过wireshark抓包工具进行检测&#xff1b; sudo wireshark 正常发送UDP数据流才算正常接入&#xff01; 2. 软…

使用C#为进程创建DUMP文件

https://www.likecs.com/show-307694293.html 程序异常崩溃前使用此类为进程创建DUMP文件&#xff0c;之后可以使用WinDbg等工具进行分析。 辅助类代码 using System; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;namespace Infrastruc…

C语言入门Day_22 初识指针

目录 前言&#xff1a; 1.内存地址 2.指针的定义 3.指针的使用 4.易错点 5.思维导图 前言&#xff1a; 之前我们学过变量可以用来存储数据&#xff0c;就像一个盒子里面可以放不同的球一样。 这是一个方便大家理解专业概念的比喻。 在计算机世界里面&#xff0c;数据实…

怎么防止360安全卫士修改默认浏览器?

默认的浏览器 原先选项是360极速浏览器&#xff08;如果有安装的话&#xff09;&#xff0c;我这里改成了Chrome。 先解锁 才能修改。

docker alpine镜像中遇到 not found

1.问题&#xff1a; docker alpine镜像中遇到 sh: xxx: not found 例如 # monerod //注&#xff1a;此可执行文件已放到/usr/local/bin/ sh: monerod: not found2.原因 由于alpine镜像使用的是musl libc而不是gnu libc&#xff0c;/lib64/ 是不存在的。但他们是兼容的&…

千巡翼X1 让航测无人机更小更轻更高效

利用无人机进行航空摄影测量&#xff0c;已成为测绘外业生产的主要方式&#xff0c;不仅方便快捷&#xff0c;更能全面准确获得成果。近年来&#xff0c;凭借快速高效、机动灵活、安全可靠、低成本等诸多优势&#xff0c;小型多旋翼无人机逐渐成为一些航测项目作业的新利器。 千…

成绩判定(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

GEE学习总结(9)——像元二分法计算月度植被覆盖度(MODIS)

像元二分法计算植被覆盖度 通过MODIS的NDVI数据集MOD13Q1和像元二分法计算植被覆盖度 var multi_NDVI ee.ImageCollection(MODIS/006/MOD13Q1).filterDate(2015-06-01, 2016-09-01).select(NDVI).max().divide(10000).clip(geometry);var ndviVis {min: 0.0,max: 1,palette…

Redis——渐进式遍历和数据库管理命令

介绍 如果使用keys * 这样的操作&#xff0c;将Redis中所有的key都获取到&#xff0c;由于Redis是单线程工作&#xff0c;这个操作本身又要消耗很多时间&#xff0c;那么就会导致Redis服务器阻塞&#xff0c;后续的操作无法正常执行 而渐进式遍历&#xff0c;通过多次执行遍历…

【PowerQuery】PowerBI Pro账户的自动刷新

在数据和模型通过发布或者上传方式上传到PowerBI Pro中,如何来进行数据刷新呢?数据源依然在本地,而数据模型已经发布到PowerBI Pro云端服务中。如果数据源更新,我们的模型如何进行自动刷新呢? PowerBI Pro如果需要基于本地数据源更新进行模型更新需要部署相应的数据网关服…

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

智能合约漏洞案例&#xff0c;Euler Finance 1.96 亿美元闪电贷漏洞分析 2023 年 3 月 13 日上午 08:56:35 UTC&#xff0c;DeFi 借贷协议 Euler Finance 遭遇闪电贷攻击。 Euler Finance 是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。…