【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秒)

  2. 启动哨兵

    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; do
  redis-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)监控集群状态。
相关推荐
m0_741585358 分钟前
网站框架
数据库
编程充电站pro30 分钟前
SQL 子查询与多表 JOIN 用法大全(速查版)
数据库·sql
祈祷苍天赐我java之术37 分钟前
Redis 有序集合解析
java·前端·windows·redis·缓存·bootstrap·html
Dersun41 分钟前
mysql数据库学习之常用函数(五)
数据库·sql·学习·mysql·ai编程
TDengine (老段)1 小时前
TDengine 时序函数 MAVG 用户手册
大数据·数据库·物联网·性能优化·时序数据库·iot·tdengine
hqwest1 小时前
QT肝8天16--加载动态菜单
开发语言·数据库·qt·ui·sqlite
数据知道3 小时前
Go基础:用Go语言操作MySQL详解
开发语言·数据库·后端·mysql·golang·go语言
krielwus3 小时前
Oracle 11g R2 物理冷备
数据库·oracle
Li zlun5 小时前
MySQL 管理与配置详解:从安装到架构解析
数据库·mysql·架构
养生技术人5 小时前
Oracle OCP认证考试题目详解082系列第50题
运维·数据库·sql·oracle·database·开闭原则