【Redis】第1节|Redis服务搭建
一、Redis 基础概念
- 核心功能
- 内存数据库,支持持久化(RDB/AOF)、主从复制、哨兵高可用、集群分片。
- 常用场景:缓存、分布式锁、消息队列、计数器、排行榜等。
- 安装环境
- 依赖 GCC 环境(C语言编译),需先安装
gcc
。 - 关闭防火墙或配置端口放行(默认端口 6379)。
- 依赖 GCC 环境(C语言编译),需先安装
二、单机部署
1. 安装步骤
# 1. 创建目录并下载
mkdir -p /opt/software/redis
cd /opt/software/redis
wget https://download.redis.io/redis-stable.tar.gz# 2. 解压并编译安装
tar -xzf redis-stable.tar.gz
cd redis-stable
make install # 生成可执行文件到 /usr/local/bin# 3. 验证安装
ll /usr/local/bin | grep redis # 检查是否生成 redis-server、redis-cli 等工具
2. 配置与启动
- 配置文件:修改
redis.conf
(路径:/opt/software/redis/redis-stable
)
bind * -::* # 允许所有IP连接
daemonize yes # 后台运行
logfile "redis.log" # 日志路径
dir "/opt/software/redis" # 工作目录
requirepass "1qaz@WSX" # 设置密码(可选)
protected-mode no # 关闭保护模式(允许远程连接)
- 启动与连接
redis-server redis.conf # 启动服务
redis-cli -a 1qaz@WSX # 带密码连接客户端
三、主从部署(Master-Slave)
1. 核心概念
- 单向复制:主节点(Master)写入,从节点(Slave)只读,数据自动同步。
- 作用:数据冗余、读写分离、故障恢复基础。
2. 配置步骤(从节点)
# 修改从节点 redis.conf
replicaof <master_ip> <master_port> # 示例:replicaof 192.168.75.129 6379
requirepass "1qaz@WSX" # 主节点密码(若有)
replica-read-only yes # 从节点只读
3. 验证
# 主节点查看从节点信息
redis-cli info replication # 输出中包含 slave0 信息(ip、端口、状态)# 从节点查看角色
redis-cli info replication | grep role:slave
四、哨兵部署(Sentinel)
1. 核心功能
- 自动故障转移:监控主从节点,主节点故障时自动选举新主节点。
- 集群模式:多个哨兵节点协同工作,避免单点故障。
2. 配置步骤
- 创建哨兵配置文件(
sentinel.conf
)
protected-mode no # 关闭保护模式
daemonize yes # 后台运行
port 26379 # 哨兵端口
logfile "sentinel.log" # 日志路径
dir "/opt/software/redis"# 监控主节点(mymaster 为主节点名称,2 为法定人数)
sentinel monitor mymaster 192.168.75.129 6379 2
sentinel down-after-milliseconds mymaster 30000 # 主节点超时时间(30秒)
sentinel failover-timeout mymaster 180000 # 故障转移超时时间(180秒)
- 启动哨兵
redis-sentinel sentinel.conf # 或 redis-server sentinel.conf --sentinel
3. 故障模拟
# 停止主节点服务
redis-cli shutdown -p 6379# 查看哨兵日志,确认新主节点选举
tail -f sentinel.log# 验证新主节点
redis-cli -p 6379 info replication | grep role:master
五、集群部署(Cluster)
1. 核心概念
- 分片存储:数据通过哈希槽(16384个)分布在多个主节点,突破单机内存限制。
- 高可用性:每个主节点配备从节点,支持自动故障转移。
2. 配置准备(三主三从)
- 节点规划
节点角色 | IP | 端口 |
主节点 | 192.168.75.129 | 6379 |
从节点 | 192.168.75.129 | 6380 |
主节点 | 192.168.75.131 | 6379 |
从节点 | 192.168.75.131 | 6380 |
主节点 | 192.168.75.132 | 6379 |
从节点 | 192.168.75.132 | 6380 |
- 配置文件(以 6379 主节点为例)
cluster-enabled yes # 开启集群模式
cluster-node-timeout 5000 # 节点超时时间(5秒)
cluster-config-file nodes-6379.conf # 集群配置文件(自动生成)
port 6379
appendonly yes # 开启AOF持久化
3. 启动与初始化集群
# 启动所有节点
for port in 6379 6380; doredis-server ./cluster/redis_${port}.conf
done# 创建集群(--cluster-replicas 1 表示每个主节点配1个从节点)
redis-cli --cluster create \192.168.75.129:6379 192.168.75.131:6379 192.168.75.132:6379 \192.168.75.129:6380 192.168.75.131:6380 192.168.75.132:6380 \--cluster-replicas 1
4. 数据读写
# 连接集群(-c 开启自动路由)
redis-cli -c -p 6379# 写入数据(自动路由到目标节点)
set key1 value1 # 若键属于其他节点,返回 MOVED 错误并提示目标节点
六、关键配置文件路径
部署模式 | 配置文件路径 | 说明 |
单机 |
| 单机配置 |
主从 | 从节点 | 主节点无需修改 |
哨兵 |
| 哨兵集群配置 |
集群 |
| 每个节点独立配置文件 |
七、常用命令汇总
操作类型 | 命令示例 | 说明 |
启动服务 |
| 带配置文件启动 |
连接客户端 |
| 连接 Redis 实例 |
查看状态 |
| 查看服务器状态(如 |
关闭服务 |
| 安全关闭 Redis 实例 |
集群管理 |
| 集群创建、信息查询、节点列表 |
八、注意事项
- 端口冲突:确保各节点端口未被占用(主节点默认 6379,哨兵默认 26379)。
- 防火墙设置:开放所有节点端口(
6379
、6380
、26379
等)。 - 配置持久化:生产环境建议同时开启 RDB 和 AOF,避免数据丢失。
- 监控工具:使用
redis-cli monitor
、info
命令或第三方工具(如 Prometheus)监控集群状态。
相关文章:
【Redis】第1节|Redis服务搭建
一、Redis 基础概念 核心功能 内存数据库,支持持久化(RDB/AOF)、主从复制、哨兵高可用、集群分片。常用场景:缓存、分布式锁、消息队列、计数器、排行榜等。 安装环境 依赖 GCC 环境(C语言编译)࿰…...

数据结构第5章 树与二叉树(竟成)
第 5 章 树与二叉树 【考纲内容】 1.树的基本概念 2.二叉树 (1)二叉树的定义及其主要特征 (2)二叉树的顺序存储结构和链式存储结构 (3)二叉树的遍历 (4)线索二叉树的基本概念和构造 …...

# 深入解析BERT自然语言处理框架:原理、结构与应用
深入解析BERT自然语言处理框架:原理、结构与应用 在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)框架的出现无疑是一个重要的里程碑。它凭借其强大的语言表示能…...
ai学习--python部分-1.变量名及命名空间的存储
初学代码时总有一个问题困扰我:a 10 # a指向地址0x1234(存储10) 变量a的值10存储在0x1234,那么变量a需要存储吗?a又存储在什么地址呢 目录 1. 命名空间的本质 2. 命名空间的内存占用 3. …...

Cadence学习笔记之---PCB过孔替换、封装更新,DRC检查和状态查看
目录 01 | 引 言 02 | 环境描述 03 | 过孔替换 04 | 封装更新 05 | PCB状态查看 06 | DRC检查 07 | 总 结 01 | 引 言 终于终于来到了Cadence学习笔记的尾声! 在上一篇文章中,讲述了如何布线、如何铺铜,以及布线、铺铜过程中比较重要…...
Java基础 Day21
一、Stream 流 思想:流水线式思想 1、获取流对象(将数据放到流中) (1)集合获取 Stream 流对象 使用Collection接口的默认方法 default Stream<E> stream() 获取当前集合对象的 Stream 流(单列集…...

系统开发和运行知识
软件生存周期 软件生存周期包括可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码和单元测试、综合测试及维护阶段。 1、可行性分析与项目开发计划 主要任务是确定软件的开发目标及可行性。该阶段应该给出问题定义、可行性分析和项目开发计划。 2、需求分析 需求…...
Elasticsearch 分片驱逐(Shard Exclusion)方式简析:`_name`、`_ip`、`_host`
在日常运维 Elasticsearch 集群过程中,常常需要将某个节点上的分片迁移出去,例如下线节点、腾出资源或进行维护操作。Elasticsearch 提供了简单直观的 shard exclusion 参数来实现这一目的,主要通过以下三个配置项: cluster.rout…...

【C++高级主题】异常处理(四):auto_ptr类
目录 一、auto_ptr 的诞生:为异常安全的内存分配而设计 1.1 传统内存管理的痛点 1.2 auto_ptr 的核心思想:RAII 与内存绑定 1.3 auto_ptr 的基本定义(简化版) 二、auto_ptr 的基本用法:将指针绑定到智能对象 2.1…...

STM32CubeMX配置使用通用定时器产生PWM
一、定时器PWM功能简介 定时器,顾名思义,就是定时的功能,定时器在单片机中算是除GPIO外最基本的外设。在ST中,定时器分为几种,基础定时器,通用定时器,高级定时器和低功耗定时器。其中定时器除了…...

WebSphere Application Server(WAS)8.5.5教程第十四讲:JPA
一、JPA 以下是对 JPA(Java Persistence API) 的深入详解,适用于具备一定 Java EE / Jakarta EE 背景的开发者,尤其是对数据持久化机制感兴趣的人员。 1、什么是 JPA? Java Persistence API(JPA…...

Linux系统调用深度剖析
Linux系统调用深度剖析与实践案例 目录 Linux系统调用深度剖析与实践案例 一、Linux系统调用概述 二、进程管理相关系统调用 1. fork():进程克隆与多任务处理 2. exec系列:程序加载与替换 3. wait/waitpid:进程状态同步 三、文件操作相关系统调用 1. 文件描述符操作…...

动态规划-918.环形子数组的最大和-力扣(LeetCode)
一、题目解析 听着有点复杂,这里一图流。 将环形问题转化为线性问题。 二、算法原理 1.状态表示 2.状态转移方程 详细可以移步另一篇博客,53. 最大子数组和 - 力扣(LeetCode) 3.初始化 由于计算中需要用到f[i-1]和g[i-1]的值&…...
Docker 镜像标签(Tag)规范与要求
Docker 镜像标签(Tag)规范与要求 背景 目前主流云厂商,如阿里云、百度云和腾讯云,均提供租户使用的镜像仓库服务。 各个厂商要求可能不太一样,比如华为:https://doc.hcs.huawei.com/zh-cn/usermanual/swr/swr_faq_0017.html 样…...

STM32:Modbus通信协议核心解析:关键通信技术
知识点1【 Modbus通信】 1、Modbus的概述 Modbus是OSI模型第七层的应用层报文传输协议 协议:说明有组包和解包的过程 2、通信机制 Modelbus是一个请求/应答协议 通信机制:主机轮询,从机应答的机制。每个从设备有唯一的地址,主…...

线程封装与互斥
目录 线程互斥 进程线程间的互斥相关背景概念 互斥量mutex 互斥量的接口 初始化互斥量有两种方法: 销毁互斥量 互斥量加锁和解锁 改进售票系统 互斥量实现原理探究 互斥量的封装 线程互斥 进程线程间的互斥相关背景概念 临界资源:多线程执行流共…...
鸿蒙OSUniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践#三方框架 #Uniapp
使用 UniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践 在移动互联网时代,天气应用几乎是每个人手机中的"标配"。无论是出行、旅游还是日常生活,实时获取天气信息都极为重要。本文将以"实时天气查询应用"为例,详…...
第十一天 5G切片技术在车联网中的应用
前言 在自动驾驶汽车每天产生4TB数据的时代,传统的移动网络已难以满足车联网的海量连接需求。中国移动2023年实测数据显示,某智能网联汽车示范区在传统5G网络下,紧急制动指令的传输延迟高达65ms,而5G网络切片技术将这个数值降低到…...

Spring AI 系列之一个很棒的 Spring AI 功能——Advisors
1. 概述 由AI驱动的应用程序已成为我们的现实。我们正在广泛地实现各种RAG应用程序、提示API,并利用大型语言模型(LLM)创建项目。借助 Spring AI,我们可以更快速地完成这些任务。 在本文中,我们将介绍一个非常有价值…...

Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
输入人民币金额的参数要求: 输入要求: 通过键盘,只允许输入负号、小数点、数字、退格键、删除键、方向左键、方向右键、Home键、End键、Tab键;负号只能在开头;只保留第一个小数点;替换全角输入的小数点&a…...

2.1 C++之条件语句
学习目标: 理解程序的分支逻辑(根据不同条件执行不同代码)。掌握 if-else 和 switch 语句的用法。能编写简单的条件判断程序(如成绩评级、游戏选项等)。 1 条件语句的基本概念 什么是条件语句? 程序在执…...
ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
为什么需要可编程差分晶振? 在现代FPGA和嵌入式系统中,高速串行通信(如GTP/GTX收发器)对参考时钟的精度和灵活性要求极高。例如,1G以太网需要125MHz时钟,SATA协议需120MHz,而DisplayPort则需135MHz。传统固定频率晶振无法满足多协议动态切换需求,而Si570凭借其10MHz~8…...

Linux `ls` 命令深度解析与高阶应用指南
Linux `ls` 命令深度解析与高阶应用指南 一、核心功能解析1. 基本作用2. 与类似命令对比二、选项系统详解1. 常用基础选项2. 进阶筛选选项三、高阶应用技巧1. 组合过滤查询2. 格式化输出控制3. 元数据深度分析四、企业级应用场景1. 存储空间监控2. 安全审计3. 自动化运维五、特…...

【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
【MPC控制 - 从ACC到自动驾驶】融会贯通:MPC在ACC中的优势总结与知识体系构建 在过去的四天里,我们一起经历了一段奇妙的旅程: Day 1: 我们认识了自适应巡航ACC这位“智能领航员”,并初见了模型预测控制MPC这位“深谋远虑的棋手…...
Day3 记忆内容:map set 高频操作
以下是 第三天 的详细学习内容,聚焦 map和set的高效应用,重点突破查找类题型和去重逻辑,助你提升代码效率! 📚 Day3 记忆内容:map & set 高频操作 1. map 核心操作(手写3遍) /…...

初等数论--Garner‘s 算法
0. 介绍 主要通过混合积的表示来逐步求得同余方程的解。 对于同余方程 { x ≡ v 0 ( m o d m 0 ) x ≡ v 1 ( m o d m 1 ) ⋯ x ≡ v k − 1 ( m o d m k − 1 ) \begin{equation*} \begin{cases} x \equiv v_0 \quad (\ \bmod \ m_0)\\ x \equiv v_1 \quad (\ \bmod \ m_1)…...

NV211NV212美光科技颗粒NV219NV220
NV211NV212美光科技颗粒NV219NV220 技术架构解析:从颗粒到存储系统 近期美光科技发布的NV211、NV212、NV219、NV220系列固态颗粒,凭借其技术突破引发行业关注。这些颗粒基于176层QLC堆叠工艺,单Die容量预计在2026年可达1Tb,相当…...

SQL解析工具JSQLParser
目录 一、引言二、JSQLParser常见类2.1 Class Diagram2.2 Statement2.3 Expression2.4 Select2.5 Update2.6 Delete2.7 Insert2.8 PlainSelect2.9 SetOperationList2.10 ParenthesedSelect2.11 FromItem2.12 Table2.13 ParenthesedFromItem2.14 SelectItem2.15 BinaryExpressio…...

Wave Terminal + Cpolar:SSH远程访问的跨平台实战+内网穿透配置全解析
文章目录 前言1. Wave Terminal安装2. 简单使用演示3. 连接本地Linux服务器3.1 Ubuntu系统安装ssh服务3.2 远程ssh连接Ubuntu 4. 安装内网穿透工具4.1 创建公网地址4.2 使用公网地址远程ssh连接 5. 配置固定公网地址 前言 各位开发者朋友,今天为您介绍一款颠覆性操…...

html使用JS实现账号密码登录的简单案例
目录 案例需求 思路 错误案例及问题 修改思路 案例提供 所需要的组件 <input>标签,<button>标签,<script>标签 详情使用参考:HTML 教程 | 菜鸟教程 案例需求 编写一个程序,最多允许用户尝试登录 3 次。…...