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

【Redis】第1节|Redis服务搭建

一、Redis 基础概念

  1. 核心功能
    • 内存数据库,支持持久化(RDB/AOF)、主从复制、哨兵高可用、集群分片。
    • 常用场景:缓存、分布式锁、消息队列、计数器、排行榜等。
  2. 安装环境
    • 依赖 GCC 环境(C语言编译),需先安装 gcc
    • 关闭防火墙或配置端口放行(默认端口 6379)。

二、单机部署

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. 配置步骤
  1. 创建哨兵配置文件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秒)
  1. 启动哨兵
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 错误并提示目标节点

六、关键配置文件路径

部署模式

配置文件路径

说明

单机

/opt/software/redis/redis-stable/redis.conf

单机配置

主从

从节点 redis.conf 增加 replicaof

主节点无需修改

哨兵

/opt/software/redis/redis-stable/sentinel.conf

哨兵集群配置

集群

/opt/software/redis/cluster/redis_*.conf

每个节点独立配置文件

七、常用命令汇总

操作类型

命令示例

说明

启动服务

redis-server [config-file]

带配置文件启动

连接客户端

redis-cli -h IP -p PORT -a PASSWORD

连接 Redis 实例

查看状态

redis-cli info [section]

查看服务器状态(如 replication

关闭服务

redis-cli shutdown [-p PORT]

安全关闭 Redis 实例

集群管理

redis-cli --cluster create/info/nodes

集群创建、信息查询、节点列表

八、注意事项

  1. 端口冲突:确保各节点端口未被占用(主节点默认 6379,哨兵默认 26379)。
  2. 防火墙设置:开放所有节点端口(6379638026379 等)。
  3. 配置持久化:生产环境建议同时开启 RDB 和 AOF,避免数据丢失。
  4. 监控工具:使用 redis-cli monitorinfo 命令或第三方工具(如 Prometheus)监控集群状态。
http://www.lryc.cn/news/2386902.html

相关文章:

  • 数据结构第5章 树与二叉树(竟成)
  • # 深入解析BERT自然语言处理框架:原理、结构与应用
  • ai学习--python部分-1.变量名及命名空间的存储
  • Cadence学习笔记之---PCB过孔替换、封装更新,DRC检查和状态查看
  • Java基础 Day21
  • 系统开发和运行知识
  • Elasticsearch 分片驱逐(Shard Exclusion)方式简析:`_name`、`_ip`、`_host`
  • 【C++高级主题】异常处理(四):auto_ptr类
  • STM32CubeMX配置使用通用定时器产生PWM
  • WebSphere Application Server(WAS)8.5.5教程第十四讲:JPA
  • Linux系统调用深度剖析
  • 动态规划-918.环形子数组的最大和-力扣(LeetCode)
  • Docker 镜像标签(Tag)规范与要求
  • STM32:Modbus通信协议核心解析:关键通信技术
  • 线程封装与互斥
  • 鸿蒙OSUniApp 开发实时天气查询应用 —— 鸿蒙生态下的跨端实践#三方框架 #Uniapp
  • 第十一天 5G切片技术在车联网中的应用
  • Spring AI 系列之一个很棒的 Spring AI 功能——Advisors
  • Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
  • 2.1 C++之条件语句
  • ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
  • Linux `ls` 命令深度解析与高阶应用指南
  • 【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
  • Day3 记忆内容:map set 高频操作
  • 初等数论--Garner‘s 算法
  • NV211NV212美光科技颗粒NV219NV220
  • SQL解析工具JSQLParser
  • Wave Terminal + Cpolar:SSH远程访问的跨平台实战+内网穿透配置全解析
  • html使用JS实现账号密码登录的简单案例
  • sorted() 函数和sort()函数的区别