Oamc

Redis 安装与排查

本页目录

场景

应用要用 Redis 做缓存或会话存储,装上之后还要防止被扫、被写满。

前置条件

  • 知道应用连过来的网段
  • 规划内存上限(别让 Redis 吃满物理内存)
  • 确认是否允许丢数据(决定开不开 AOF)

配置

dnf install -y redis

cat >/etc/redis/redis.conf.d/ops.conf <<'EOF'
bind 10.0.0.5 127.0.0.1
protected-mode yes
requirepass 强密码
maxmemory 2gb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
EOF

systemctl enable --now redis
systemctl restart redis

连接测试:

redis-cli -h 10.0.0.5 -a 强密码 ping

验证

redis-cli -a 强密码 INFO server | head
redis-cli -a 强密码 INFO memory | grep used_memory_human
redis-cli -a 强密码 CONFIG GET maxmemory
redis-cli -a 强密码 DBSIZE

回滚

systemctl disable --now redis
rm /etc/redis/redis.conf.d/ops.conf

坑

  • 默认 bind 0.0.0.0 + 无密码 = 被挖矿,这是最常见的失陷原因。
  • maxmemory 不设,内存涨到 OOM 被内核杀掉。
  • maxmemory-policy noeviction 时写满会直接报错,不是淘汰。
  • 开 AOF 后磁盘写入翻倍,机械盘上延迟明显。
  • 主从切换后应用还连着旧主,要客户端支持 sentinel 或 cluster。
  • KEYS * 在大库上会阻塞,用 SCAN。