Redis 运维预习:内存、过期时间与持久化

阿远
2026-10-29 / 0 评论 / 1 阅读 / 正在检测是否收录...

Redis 常用于缓存和会话,但它不会因为速度快就适合替代所有数据库。本篇作为后续实验的预习,不表示本站已经安装 Redis。

学习整理:2026-10-29。以下命令、地址和账号均为课程实验示例,按实际环境替换;涉及安装、覆盖配置或服务启停的操作先在隔离环境练习,不代表本站已经实施。

一、用途

Redis常用于缓存、会话、计数器、排行榜、分布式锁和消息场景。它是内存数据系统,不应因为速度快就替代所有数据库。

二、基础操作

systemctl status redis
ss -lntp | grep 6379
redis-cli ping
redis-cli INFO server
redis-cli INFO memory
redis-cli INFO persistence

基本数据操作仅用于实验:

SET health ok
GET health
EXPIRE health 60
TTL health
DEL health

生产环境执行KEYS *可能阻塞服务,应理解SCAN类命令后再操作。

三、配置关注点

  • bind:监听地址。
  • protected-mode:保护模式。
  • requirepass或ACL:认证授权。
  • maxmemory:内存上限。
  • maxmemory-policy:淘汰策略。
  • appendonly:AOF。
  • save:RDB快照。
  • dir:数据目录。

Redis不应无认证暴露到公网。

四、持久化

  • RDB:周期性快照,恢复快,可能丢失最近一段数据。
  • AOF:记录写操作,可配置刷盘策略,文件通常更大。
  • 两者可组合,但仍不能替代独立备份。

五、内存排查

redis-cli INFO memory
redis-cli INFO stats
redis-cli INFO clients
redis-cli SLOWLOG GET 10

关注:

  • used_memory。
  • maxmemory。
  • evicted_keys。
  • connected_clients。
  • blocked_clients。
  • keyspace_hits和misses。

不要在生产环境对大实例直接执行危险的全量扫描或大Key操作。

六、连接失败

  1. Redis进程和端口。
  2. bind是否只监听127.0.0.1。
  3. protected-mode和认证。
  4. 防火墙。
  5. 客户端连接地址。
  6. 最大客户端数。
  7. 日志和内存状态。

隔离环境练习计划

  • 配置Redis仅允许实验网段访问。
  • 设置认证。
  • 写入带过期时间的Key。
  • 观察RDB/AOF文件。
  • 重启并验证数据。
  • 制造错误密码和错误bind配置,完成排查。

我的验收重点

先说清每个组件和参数解决的问题,再在实验环境记录正常结果、错误现象与恢复步骤。配置能通过语法检查只是起点,还应验证实际功能。本文保留为学习笔记,不把计划中的多机部署或演练写成本站完成记录。

补上响应含义与持久化边界

TTL 返回 -2 表示 key 不存在,-1 表示存在但没有过期时间。SET/DEL/EXPIRE 都会写入,应使用实验前缀,不操作业务 key。maxmemory 不是进程总 RSS 的硬上限,复制、持久化与内存碎片也占资源。SCAN 不是固定时刻的一致性快照,也可能重复返回元素;批量处理应能去重或幂等。RDB/AOF 选择需要明确可接受的数据丢失窗口。

内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
1

评论 (0)

取消