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

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)深入学习集群管理与高级特性。

相关文章:

  • JavaScript事件循环机制详解
  • Revo Uninstaller中文版:深度卸载,系统优化
  • 【笔记】NVIDIA AI Workbench 安装记录
  • YOLOv5白皮书 common.py 文件解读
  • 鸿蒙多语言开发实战:3 步实现中英文动态切换(无需重启 App)附完整代码 + 避坑指南
  • Prompt Tuning、P-Tuning、Prefix Tuning的区别
  • 小白成长之路-Shell脚本
  • 西电计组第四章-存储系统
  • 使用Meshlab处理非流形边的问题
  • Illegal key size or default parameters问题解决
  • 入门机器学习需要的统计基础
  • 55. Jump Game
  • 二十、【用户管理与权限 - 篇二】前端交互:实现用户管理界面
  • pytorch-frame开源程序适用于 PyTorch 的表格深度学习库,一个模块化深度学习框架,用于在异构表格数据上构建神经网络模型。
  • leetcode0934. 最短的桥-medium
  • mac文件整理利器 Hazel 使用教程
  • (十)学生端搭建
  • 【TinyWebServer】HTTP连接处理
  • ntp时间同步服务
  • Admin.Net中的消息通信SignalR解释
  • 惠州专业的免费建站/百度客服电话
  • 彩票网站维护需要几天/电商平台排行榜前十名
  • 做网站开发哪里可以接单/百度贴吧官网app下载
  • 个人网站html模板下载/百度查关键词显示排名
  • wordpress+dns预读/武汉seo人才
  • 北京哪家做网站和网络推广好的/厦门专业做优化的公司