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

CentOS7下的Redis部署

一、Redis 概述:内存数据存储的核心组件

1.1 Redis 定位与特性

Redis(Remote Dictionary Server)是一款基于内存的高性能键值对存储系统,支持字符串、哈希、列表、集合等数据结构,具备以下核心特性:

  • 内存持久化:支持 RDB 快照和 AOF 日志持久化,保障数据可靠性。
  • 原子操作:提供丰富的原子性命令,适用于计数器、分布式锁等场景。
  • 集群模式:支持主从复制、哨兵模式和 Cluster 集群,满足高可用需求。
  • 丰富生态:支持 Lua 脚本、发布订阅、管道操作等扩展功能。

应用场景

  • 缓存系统(降低数据库压力)
  • 实时计数器(如点赞、浏览量统计)
  • 分布式会话存储(微服务架构中会话共享)
  • 消息队列(轻量级消息传递场景)

二、环境准备与安装

2.1 系统要求

  • 操作系统:CentOS 7/8、Ubuntu 20.04+(推荐 64 位系统)
  • 硬件配置
    • 开发测试:1 核 CPU、2GB 内存、20GB 磁盘
    • 生产环境:4 核 CPU、8GB + 内存、SSD 磁盘(根据数据量扩展)
  • 网络要求:开放 6379 端口(默认服务端口)

2.2 安装 EPEL 仓库(CentOS 系统)

Redis 在 CentOS 默认仓库中版本较低,需通过 EPEL 仓库安装最新稳定版:

bash

# 安装EPEL仓库
yum install -y epel-release 
yum update -y  # 更新系统包

2.3 安装 Redis 服务

bash

# 安装Redis包
yum install -y redis # 验证安装版本
redis-server --version  # 应输出Redis 6.2.x或更高

2.4 启动与开机自启

bash

# 启动Redis服务
systemctl start redis # 开启开机自启
systemctl enable redis# 检查服务状态
systemctl status redis
# 预期输出:Active(running),表示服务正常运行

三、基础配置与优化

3.1 配置文件解析

Redis 主配置文件为/etc/redis.conf,核心配置项说明:

bash

bind 127.0.0.1        # 绑定监听地址(生产环境建议绑定内网IP)
port 6379             # 服务端口
daemonize yes         # 以守护进程运行
pidfile /var/run/redis/redis.pid  # 进程ID文件
logfile "/var/log/redis/redis.log"  # 日志文件路径
dbfilename dump.rdb   # RDB快照文件名
dir /var/lib/redis/    # 数据存储目录
requirepass your_strong_password  # 访问密码(生产环境必填)
maxmemory 4gb         # 最大内存限制(根据服务器内存配置)
maxmemory-policy allkeys-lru  # 内存淘汰策略(LRU算法)

3.2 安全配置

3.2.1 设置访问密码

bash

vim /etc/redis.conf
# 找到requirepass配置项,取消注释并设置强密码
requirepass "Itheima@2024#Redis" 
3.2.2 限制绑定地址

bash

# 仅允许本地或特定IP访问(生产环境禁止公网直接访问)
bind 192.168.88.130  # 绑定内网IP

3.3 持久化配置

3.3.1 RDB 快照(默认方式)

bash

# 设置自动生成快照的规则(示例:900秒内至少1个键变更时生成快照)
save 900 1
save 300 10
save 60 10000
3.3.2 AOF 日志(追加写入)

bash

appendonly yes       # 开启AOF
appendfsync everysec # 每秒同步一次日志(兼顾性能与可靠性)

四、服务验证与基本操作

4.1 客户端连接测试

bash

# 本地连接(无需密码)
redis-cli# 远程连接(需指定IP和密码)
redis-cli -h 192.168.88.130 -p 6379 -a "Itheima@2024#Redis"# 执行简单命令
set mykey "hello redis" 
get mykey 
# 预期输出:"hello redis"

4.2 查看服务状态

bash

redis-cli info server  # 查看服务器信息
redis-cli info memory  # 查看内存使用情况

五、生产环境最佳实践

5.1 内存管理策略

  • 淘汰策略选择
    • allkeys-lru:当内存不足时,移除最近最少使用的键(推荐通用场景)。
    • volatile-ttl:仅对设置了过期时间的键使用 TTL 淘汰(适用于有过期策略的场景)。

5.2 主从复制配置

主节点(Master)配置

bash

vim /etc/redis.conf
replicaof no one  # 声明为主节点(默认配置)

从节点(Replica)配置

bash

vim /etc/redis.conf
replicaof 192.168.88.130 6379  # 指向主节点IP和端口

5.3 哨兵模式(Sentinel)

配置哨兵节点

bash

vim /etc/redis-sentinel.conf
sentinel monitor mymaster 192.168.88.130 6379 2  # 监控主节点,至少2个哨兵同意才触发故障转移
sentinel down-after-milliseconds mymaster 5000  # 主节点超时时间5秒

六、监控与故障排查

6.1 内置监控命令

bash

redis-cli info  # 查看全量监控指标
redis-cli monitor  # 实时监控命令执行

6.2 常用工具

  • redis-stat:开源 Redis 监控工具,可视化展示 QPS、内存命中率等。
  • Prometheus+Grafana:通过redis_exporter采集指标,实时展示内存趋势、连接数等。

6.3 常见故障处理

6.3.1 服务无法启动

可能原因

  • 端口被占用:netstat -anp | grep 6379检查端口占用。
  • 配置文件错误:redis-server /etc/redis.conf --test-config验证配置语法。
6.3.2 内存不足

解决方案

  • 调整maxmemory配置,增加服务器内存。
  • 优化淘汰策略,移除不必要的缓存数据。

七、容器化部署(Docker 场景)

7.1 创建 Dockerfile

dockerfile

FROM redis:alpine  # 使用官方轻量级镜像
COPY redis.conf /usr/local/etc/redis/redis.conf  # 复制自定义配置
EXPOSE 6379
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

7.2 启动容器

bash

docker build -t my-redis .
docker run -d --name redis-container \
-p 6379:6379 \
-v /data/redis/data:/var/lib/redis \
my-redis

八、总结:Redis 部署核心流程

通过本文的实战指南,可掌握基于 Linux 系统的 Redis 单节点部署、安全配置及性能优化。生产环境中建议结合主从复制或集群模式,配合监控体系实现高可用性。如需进一步扩展,可参考官方文档(Redis Documentation)深入学习集群管理与高级特性。

http://www.xdnf.cn/news/13306.html

相关文章:

  • XS2105M IEEE 802.3af 兼容、受电设备接口控制器
  • Day27 函数专题2:装饰器
  • 从中科大镜像获取linux内核5.10.168的git方法
  • Python 字符串、字节串与编解码:数据转换的奥秘
  • 【Redis/1-前置知识】分布式系统概论:架构、数据库与微服务
  • 【力扣数据库知识手册笔记】索引
  • java--怎么定义枚举类
  • 状态模式:对象行为的优雅状态管理之道
  • 图像直方图分析:全面掌握OpenCV与Matplotlib绘制技巧
  • 《通信之道——从微积分到 5G》读书总结
  • 最短回文串解题思路分享
  • 基于大模型预测的输尿管上段积水诊疗方案研究报告
  • 【TinyWebServer】HTTP连接处理
  • 【位运算】消失的两个数字(hard)
  • websocket实践
  • 通过Netplan为Ubuntu服务器新增DNS以解析内部域名
  • 设计模式-适配器模式
  • 微信小程序 - 手机震动
  • 《P1168 中位数》
  • 期末考试复习总结-《应用程序框架基础》
  • 系统网站首页三种常见布局vue+elementui
  • 【Element Plus】Menu组件:url访问页面时高亮对应菜单栏
  • 板凳-------Mysql cookbook学习 (十--4)
  • 小程序动画性能提升指南:CSS硬件加速与JavaScript动画框架对比
  • CentOS下的运维监控Grafana部署
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十二) -> 构建系统生命周期
  • okhttp 实现长连接的完整方案
  • OpenLayers 获取地图状态
  • Docker 安装教程(CentOS 系统)纯新手可入门
  • wordpress后台更新后 前端没变化的解决方法