当前位置: 首页 > news >正文

七、Linux二进制安装Redis集群

目录

  • 七、Linux二进制安装Redis集群
    • 1 安装Redis所需依赖
    • 2 单机安装Redis(7.2.4)
      • 2.1 下载Redis
      • 2.2 安装Redis
    • 3 分布式部署模式(Redis Cluster)
      • 3.1 分布式部署模式的配置文件
      • 3.2创建集群
    • 4 主从复制模式(Redis Sentinel)
      • 4.1 主从复制模式的配置文件
      • 4.2 Sentinel节点配置

七、Linux二进制安装Redis集群

注意:如果只需要分布式部署,前面看完就可以了,主从复制除非特定,一般不需要配置

1 安装Redis所需依赖

yum install -y gcc tcl

2 单机安装Redis(7.2.4)

2.1 下载Redis

下载地址:Redis下载地址
百度网盘:百度网盘下载

2.2 安装Redis

将文件放到 /opt下

tar -zxvf /opt/redis-7.2.4.tar.gz

进入到文件目录

cd /opt/redis-7.2.4

执行编译命令

make && make install

第一次安装回头有点慢,耐心等待!
安装完成后,在 /usr/local/bin/下可以看到这些文件
在这里插入图片描述
创建文件目录

mkdir -p /opt/redis/{data,logs}

在这里插入图片描述

3 分布式部署模式(Redis Cluster)

3.1 分布式部署模式的配置文件

创建配置文件

cat > /opt/redis/redis-cluster.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/cluster-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "cluster-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 从节点连接到主节点所需的密码
masterauth "123456"
# 是否开启集群
cluster-enabled yes
# 集群端口
cluster-port 16379
# 生成的node文件,记录集群节点信息,默认为 nodes.conf
cluster-config-file nodes-6379.conf
#节点连接超时时间
cluster-node-timeout 20000
EOF

创建启动文件

cat > /etc/systemd/system/redis-server.service <<EOF
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-cluster.confExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID[Install]
WantedBy=multi-user.target
EOF

服务启动命令

# 重新加载服务配置文件(先执行这个)
systemctl daemon-reload
# 启动服务
systemctl start redis-server.service
# 重启服务
systemctl restart redis-server.service
# 服务自启动
systemctl enable redis-server.service
# 停止服务
systemctl stop redis-server.service
# 服务状态
systemctl status redis-server.service

连接cli查看

cd /usr/local/bin/
./redis-cli -a 123456

在这里插入图片描述
上述单机安装在三台机器上都进行安装后,执行下面的步骤(上面安装完可以通过客户端连接看看是否成功)

3.2创建集群

确保你的集群在hosts存在

vi /etc/hosts

在这里插入图片描述

cd /usr/local/bin/
./redis-cli --cluster create 192.168.200.161:6379 192.168.200.162:6379 192.168.200.163:6379 -a 123456

中间直接 yes
在这里插入图片描述
验证集群(随便一个IP)

./redis-cli -c -h 192.168.200.162 -p 6379 -a 123456
cluster info

在这里插入图片描述
插入name
在这里插入图片描述
在另一台机器上查看
在这里插入图片描述

4 主从复制模式(Redis Sentinel)

4.1 主从复制模式的配置文件

主节点配置

cat > /opt/redis/redis-sentinel.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "sentinel-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
EOF

两个从点配置(注意replicaof 根据自己的修改)

cat > /opt/redis/redis-sentinel.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 6379
# 关闭保护模式
protected-mode no
# Redis 服务器以守护进程的方式运行
# daemonize no
# Redis 服务器的密码
requirepass "123456"
# 从节点连接到主节点所需的密码
masterauth "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-6379.log"
# 启用Redis的持久化日志
appendonly yes
# 持久化数据文件(快照文件)的文件名
dbfilename "sentinel-6379.rdb"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 指向主节点
replicaof 192.168.200.161 6379
EOF

启动文件配置(三个相同)

cat > /etc/systemd/system/redis-server.service <<EOF
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-sentinel.confExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID[Install]
WantedBy=multi-user.target
EOF

启动方式

# 重新加载服务配置文件
systemctl daemon-reload
# 启动服务
systemctl start redis-server.service
# 重启服务
systemctl restart redis-server.service
# 服务自启动
systemctl enable redis-server.service
# 停止服务
systemctl stop redis-server.service
# 服务状态
systemctl status redis-server.service

4.2 Sentinel节点配置

Sentinel配置文件(三个相同)

cat > /opt/redis/redis-sentinel-26379.conf <<EOF
# 指定 Redis 服务器绑定的网络接口地址
bind 0.0.0.0
# Redis 服务器监听的端口号
port 26379
# 关闭保护模式
protected-mode no
# Redis 服务器的密码
requirepass "123456"
# 从节点连接到主节点所需的密码
masterauth "123456"
# Redis 日志文件的路径和文件名
logfile "/opt/redis/logs/sentinel-26379.log"
# 持久化数据文件的存储目录
dir "/opt/redis/data/"
# 设置 Sentinel 监视的 Redis 主节点 mymaster 的认证密码
sentinel auth-pass mymaster 123456
# Sentinel 监视名为 mymaster 的 Redis 主节点
sentinel monitor mymaster 192.168.200.161 6379 2
# 配置指定了 Sentinel 在认为主节点不可用之前等待的毫秒数
sentinel down-after-milliseconds mymaster 10000
# 定了在进行故障转移时,同时同步的从节点数量
sentinel parallel-syncs mymaster 1
# 配置定义了执行故障转移的超时时间
sentinel failover-timeout mymaster 60000
EOF

Sentinel启动文件(三个相同)
注意这里的 ExecStart ,不在/usr/local/bin下,而是在源文件解压 make 后的文件夹中

cat > /etc/systemd/system/redis-sentinel.service <<EOF
[Unit]
Description=The redis-sentinel Process Manager
After=syslog.target network.target[Service]
Type=simple
PIDFile=/var/run/redis_sentinel_6379.pid
ExecStart=/opt/redis-7.2.4/src/redis-sentinel /opt/redis/redis-sentinel-26379.confExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID[Install]
WantedBy=multi-user.target
EOF

启动命令

# 重新加载服务配置文件
systemctl daemon-reload
# 启动服务
systemctl start redis-sentinel.service
# 重启服务
systemctl restart redis-sentinel.service
# 服务自启动
systemctl enable redis-sentinel.service
# 停止服务
systemctl stop redis-sentinel.service
# 服务状态
systemctl status redis-sentinel.service

检验测试
选择主节点客户端

/usr/local/bin
info replication

在这里插入图片描述
从节点
在这里插入图片描述
任选一节点
在这里插入图片描述
自此,redis 安装完成。主从复制 ,在客户端使用
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • H264视频编码中Annex B 格式介绍
  • 【unity实战】Unity中使用A*寻路+有限状态机制作一个俯视角敌人AI
  • 用python生成带图片的二维码(python实例二十二)
  • 力扣995.K连续位的最小翻转次数
  • 【深度学习】图形模型基础(6):模型优化理论
  • 1、预处理
  • 【Linux】进程(9):进程控制3(进程程序替换)
  • centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务
  • java线程介绍
  • Sharding-JDBC分库分表之SpringBoot分片策略
  • 前端实现无缝自动滚动动画
  • 【leetcode刷题笔记】02.复写零
  • 华为HCIP Datacom H12-821 卷28
  • Postman使用教程【项目实战】
  • Java 8革新:现代编程的全新标准与挑战
  • Angular4 模板式表单用法以及验证
  • co.js - 让异步代码同步化
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • httpie使用详解
  • in typeof instanceof ===这些运算符有什么作用
  • JAVA并发编程--1.基础概念
  • JS 面试题总结
  • JS笔记四:作用域、变量(函数)提升
  • MySQL QA
  • passportjs 源码分析
  • PAT A1120
  • PHP 小技巧
  • Spring Boot快速入门(一):Hello Spring Boot
  • 聚簇索引和非聚簇索引
  • 聊聊sentinel的DegradeSlot
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 容器服务kubernetes弹性伸缩高级用法
  • 深度解析利用ES6进行Promise封装总结
  • 实现简单的正则表达式引擎
  • 使用Swoole加速Laravel(正式环境中)
  • 探索 JS 中的模块化
  • 微信小程序开发问题汇总
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • k8s使用glusterfs实现动态持久化存储
  • Nginx实现动静分离
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​configparser --- 配置文件解析器​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #HarmonyOS:基础语法
  • #QT(TCP网络编程-服务端)
  • ${factoryList }后面有空格不影响
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)进入MySQL 【事务】
  • .NET Core 中的路径问题
  • .net SqlSugarHelper
  • .NET 表达式计算:Expression Evaluator