redis集群安装部署 redis三主三从集群

redis集群安装部署 redis三主三从集群

  • 1、下载redis
  • 2、安装redis集群 三主三从
  • 3、配置redis开机自启动
    • 3.1、建立启动脚本
    • 3.2、复制多份redis启动脚本给集群使用
    • 3.3、添加可执行权限
    • 3.4、配置开机自启动

1、下载redis

本次redis安装部署选择当前最新的稳定版本7.4.1
下载链接: https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz

在这里插入图片描述
安装包名是redis-7.4.1.tar.gz

2、安装redis集群 三主三从

redis三主三从集群机器规划

机器IPredis端口redis安装目录每个redis节点配置文件每个redis节点的集群配置文件
192.168.2.1626379/usr/local/redis//usr/local/redis/conf/redis-cluster-6379.conf/data/redis7/cluster/6379/data/nodes-6379.conf
192.168.2.1626380/usr/local/redis//usr/local/redis/conf/redis-cluster-6380.conf/data/redis7/cluster/6380/data/nodes-6380.conf
192.168.2.1646379/usr/local/redis//usr/local/redis/conf/redis-cluster-6379.conf/data/redis7/cluster/6379/data/nodes-6379.conf
192.168.2.1646380/usr/local/redis//usr/local/redis/conf/redis-cluster-6380.conf/data/redis7/cluster/6380/data/nodes-6380.conf
192.168.2.1686379/usr/local/redis//usr/local/redis/conf/redis-cluster-6379.conf/data/redis7/cluster/6379/data/nodes-6379.conf
192.168.2.1686380/usr/local/redis//usr/local/redis/conf/redis-cluster-6380.conf/data/redis7/cluster/6380/data/nodes-6380.conf

上传redis-7.4.1.tar.gz到三台机器上
下面是安装redis 7.4.1命令,3台redis机器都执行

cd /path/to/redis-7.4.1.tar.gz
tar -xzvf redis-7.4.1.tar.gz
cd redis-7.4.1
make
make install PREFIX=/usr/local/redis

PREFIX=/usr/local/redis 这个是指定redis的安装目录,因此要保证这个目录为空。
安装完后 会自动创建/usr/local/redis目录 内容如下 内容就是redis的可执行程序redis-cli、redis-server
在这里插入图片描述

配置redis环境变量

vi /etc/profile

在/etc/profile末尾处中增加如下内容:

export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin

之后执行source加载环境变量:

source /etc/profile

在执行如下命令。如果能输出redis版本说明环境变量配置成功:

redis-server --version

在这里插入图片描述

然后创建redis集群的目录、配置文件等,3台redis机器都执行

mkdir -p /data/redis7/cluster/6379
mkdir -p /data/redis7/cluster/6380cd /data/redis7/cluster/6379
mkdir logs data
cd /data/redis7/cluster/6380
mkdir logs datamkdir /usr/local/redis/conf
mkdir /usr/local/redis/pidvi /usr/local/redis/redis.conf

redis.conf中填入以下内容:

#redis访问端口(需要修改)
port 6379#设置开启守护进程
daemonize yes#关闭保护模式
protected-mode no#开启远程访问
bind 0.0.0.0# 开启AOF
appendonly yes#日志存放位置(需要修改)
logfile "/data/redis7/cluster/6379/logs/redis-cluster-6379.log"#数据保存目录(需要修改)
dir /data/redis7/cluster/6379/data/# pid文件创建位置(需要修改)
pidfile  /usr/local/redis/pid/redis_6379.pid#aof 持久化文件位置(需要修改) 在dir目录下
appendfilename "6379-appendonly.aof"#修改rdb持久化文件位置(需要修改) 在dir目录下
dbfilename 6379-dump.rdb# 开启集群模式
cluster-enabled yes
# 每一个redis节点需要有一个配置文件,三主三从集群共6个节点,因此需要6份配置文件。每个节点处于集群中都需要告知其他所有节点,达到集群中节点信息交换的目的,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,不用管。如果你要重新创建集群,那么把每个节点的这个文件删了就行
#(需要修改) 在dir目录下
cluster-config-file nodes-6379.conf
# 超时时间,超时则认为master宕机,随后主备切换单位毫秒
cluster-node-timeout 5000
#设置集群节点间访问密码
masterauth 123456
#设置连接密码
requirepass 123456

创建redis集群配置文件

cp  /usr/local/redis/redis.conf /usr/local/redis/conf/redis-cluster-6379.conf
cp  /usr/local/redis/redis.conf /usr/local/redis/conf/redis-cluster-6380.conf

编辑 /usr/local/redis/conf/redis-cluster-6380.conf 把其中的6379修改成6380

sed -i "s/6379/6380/g" /usr/local/redis/conf/redis-cluster-6380.conf

在每个redis机器上分别启动redis程序

nohup /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-cluster-6379.conf &
nohup /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-cluster-6380.conf &

创建redis集群,在任意一台redis机器上执行就行
–cluster-replicas 1 :表示每个主节点需要1个从节点。这里随机分配主从关系,如果需要定制,则可以不加该参数,使用add-node来定制,

redis-cli --cluster create 192.168.2.162:6379 192.168.2.162:6380 192.168.2.164:6379 192.168.2.164:6380 192.168.2.168:6379 192.168.2.168:6380 --cluster-replicas 1 -a 123456

会提示是否接受上面配置,输入yes就可以了,就开始初始化集群,等待完成即可,

在这里插入图片描述

在这里插入图片描述

至此redis三主三从集群部署完成。

查看redis集群状态

在redis集群中任一台机器上登录redis

redis-cli -p 6379

登入redis后 执行

auth 123456
cluster info
cluster nodes

其中cluster info 显示 cluster_state:ok 即表示集群创建成功。否则集群创建失败。
在这里插入图片描述

3、配置redis开机自启动

3.1、建立启动脚本

官方启动脚本 https://github.com/redis/redis/blob/unstable/utils/redis_init_script

这是官方启动脚本内容

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFOREDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."$CLIEXEC -p $REDISPORT shutdownwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped"fi;;*)echo "Please use start or stop as first argument";;
esac

vi /etc/init.d/redisd6379 填入以下改造后内容如下(对官方启动脚本加以改造适应我们自己安装的redis程序)

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFOREDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/usr/local/redis/pid/redis_${REDISPORT}.pid
CONF="/usr/local/redis/conf/redis-cluster-${REDISPORT}.conf"case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."$CLIEXEC -p $REDISPORT -a '123456'  shutdownwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped"fi;;*)echo "Please use start or stop as first argument";;
esac

3.2、复制多份redis启动脚本给集群使用

cd /etc/init.d
cp redisd6379 redisd6380
sed -i "s/REDISPORT=6379/REDISPORT=6380/" /etc/init.d/redisd6380

3.3、添加可执行权限

chmod +x /etc/init.d/redisd6379
chmod +x /etc/init.d/redisd6380

3.4、配置开机自启动

添加开机自启动

chkconfig --add redisd6379
chkconfig --add redisd6380

查看开机自启动配置

chkconfig --list

默认开启runlevel=2345的启动

在这里插入图片描述

至此redis开机自启动配置完成

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

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

相关文章

数据结构,链表的简单使用

任意位置删除&#xff1a; void Any_Del(LinkListPtr h,int a)//任意删 {if(NULLh||a>h->len){printf("删除失败");}LinkListPtr ph;for(int i0;i<a-1;i){pp->next;}LinkListPtr p2p;p2p2->next;p->nextp->next->next;free(p2);p2NULL;h-&g…

Servlet容器来扫描指定包中的类 找到带有WebServlet注解的类

项目框架如上图 myweb下边三个类 package com.qcby.tomcat.myweb;import com.qcby.tomcat.webServlet.WebServlet;WebServlet(urlPatterns {"MyFirstServlet"}) public class MyFirstServlet {}package com.qcby.tomcat.myweb;import com.qcby.tomcat.webServlet.W…

clickhouse 查询优化思路

最重要的是要学会看懂explain &#xff0c;尤其是下推创建表时&#xff0c;可以选择表为分布式表。多个表join &#xff0c;创建表时根据join 字段,进行分片&#xff0c;让数据在同一个节点进行join &#xff0c;提高join 效率。多个表join , 通过创建物化视图的方式&#xff0…

两数之和(Hash表)

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找出"和"为目标值target的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元…

C++8--赋值运算符重载

1.运算符重载 C引入运算符的目的是为了增强代码的可读性。运算符重载是具有特殊函数名的函数&#xff0c;也具有其返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数相似。 函数名字为&#xff1a;关键字operator后面接需要重载的运算…

P1255 数楼梯

刚开始使用暴力进行求解&#xff0c;结果发现这是一道考验高精度的题目&#xff0c;后来用高精度的方法&#xff0c;甚至使用到了容器&#xff0c;结果还不如暴力求解的60分&#xff0c;后来看了题解&#xff0c;有一个非常好的思路&#xff0c;即体现了高精度求和&#xff0c;…

pyfink1.20版本下实现消费kafka中数据并实时计算

1、环境 JDK版本&#xff1a;1.8.0_412python版本&#xff1a;3.10.6apache-flink版本&#xff1a;1.20.0flink版本&#xff1a;1.20kafka版本&#xff1a;kafka_2.12-3.1.1flink-sql-connector-kafka版本&#xff1a;3.3.0-1.202、执行python-flink脚本 从kafka的demo获取消…

数据结构速成

1. 数据结构与算法 2. 顺序表 3. 链表 4. 栈与队列 5. 串 6. 树与二叉树&#xff08;1&#xff09; 7. 树与二叉树&#xff08;2&#xff09; 8. 图 9. 图的应用 10. 查找 11. 排序&#xff08;1&#xff09; 12. 排序&#xff08;2&#xff09;

k8s的污点与容忍度

污点&#xff08;Taint&#xff09;针对节点来说&#xff0c;和节点亲和性正好相对&#xff0c;节点亲和性使Pod被吸引到一类特定的节点&#xff0c;而污点则使节点能够排斥一类特定的Pod。 容忍度&#xff08;Toleration&#xff09;应用于Pod上&#xff0c;它用来允许调度器…

how to write 述职pptx as a tech manager

As a technical manager, crafting an effective 述职 (performance review) PPT requires you to highlight your leadership, team accomplishments, technical contributions, challenges faced, and future plans. Heres a structured approach to design your PPT: 1. Cov…

从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——消费者如何进行消费

本章节主要从底层源码探索Spring Boot中RabbitMQ如何进行消费&#xff0c;至于RabbitMQ是如何使用如何生产消息&#xff0c;本章不做过多介绍&#xff0c;感兴趣的小伙伴可以参考&#xff1a;从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——生产者…

计算机视觉中的边缘检测算法

摘要&#xff1a; 本文全面深入地探讨了计算机视觉中的边缘检测算法。首先阐述了边缘检测的重要性及其在计算机视觉领域的基础地位&#xff0c;随后详细介绍了经典的边缘检测算法&#xff0c;包括基于梯度的 Sobel 算子算法、Canny 边缘检测算法等&#xff0c;深入剖析了它们的…

Unix 和 Windows 的有趣比较

Unix 和 Windows NT 比较 来源于这两本书&#xff0c;把两本书对照来读&#xff0c;发现很多有意思的地方&#xff1a; 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…

SSM 垃圾分类系统——高效分类的科技保障

第五章 系统功能实现 5.1管理员登录 管理员登录&#xff0c;通过填写用户名、密码、角色等信息&#xff0c;输入完成后选择登录即可进入垃圾分类系统&#xff0c;如图5-1所示。 图5-1管理员登录界面图 5.2管理员功能实现 5.2.1 用户管理 管理员对用户管理进行填写账号、姓名、…

系列1:基于Centos-8.6部署Kubernetes (1.24-1.30)

每日禅语 “木末芙蓉花&#xff0c;山中发红萼&#xff0c;涧户寂无人&#xff0c;纷纷开自落。​”这是王维的一首诗&#xff0c;名叫《辛夷坞》​。这首诗写的是在辛夷坞这个幽深的山谷里&#xff0c;辛夷花自开自落&#xff0c;平淡得很&#xff0c;既没有生的喜悦&#xff…

Y20030004基于asp.net+Sql的环保网站的设计与实现(附源码 调试 文档)

环保网站的设计与实现 1.摘要要2. 系统功能3.功能结构图4.界面展示5.源码获取 1.摘要要 近几年国家对于环境管理是高度重视&#xff0c;尤其是对于环境生态的破坏与环境污染&#xff0c;已经严重影响到人类的生存和发展。为了使生态环境能够得到保护和改善&#xff0c;持续发展…

安全计算环境-(一)路由器-1

安全计算环境-网络设备 安全管理中心针对整个系统提出了安全管理方面的技术控制要求&#xff0c;通过技术手段实现集中管理&#xff1b;涉及的安全控制点包括系统管理、审计管理、安全管理和集中管控。以下以三级等级保护对象为例&#xff0c;描述安全管理中心各个控制要求项的…

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。

概述&#xff1a; D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点&#xff1a; ● 高精度基准电路 ● 定时闩锁、短路保护电路 ● 低电压输入时误操作保护电路 ● 输出基准电压(2.5V) ● 超过工作范围能进行自动校…

数据挖掘之聚类分析

聚类分析&#xff08;Clustering Analysis&#xff09; 是数据挖掘中的一项重要技术&#xff0c;旨在根据对象间的相似性或差异性&#xff0c;将对象分为若干组&#xff08;簇&#xff09;。同一簇内的对象相似性较高&#xff0c;而不同簇间的对象差异性较大。聚类分析广泛应用…

Qt 图形框架下图形拖动后位置跳动问题

在使用Qt 的图形框架QGraphicsScene&#xff0c;QGraphicsView实现图形显示时。遇到一个很棘手的BUG。 使用的图形是自定义的QGraphicsObject的子类。 现象是将图形添加到画布上之后&#xff0c;用鼠标拖动图形&#xff0c;图形能正常改变位置&#xff0c;当再次用鼠标点击图…