NoSQL 之 Redis 配置与优化

NoSQL 之 Redis 配置与优化

Redis 是高性能键值型 NoSQL 数据库,广泛用于缓存、消息队列、分布式锁、会话存储等场景。本文从安装配置、核心配置、性能优化、安全优化、持久化优化、内存优化、高可用7 个维度,提供企业级可直接落地的方案。

一、Redis 快速安装

bash

运行

安装依赖

yum install -y gcc gcc-c++ make

下载解压(推荐稳定版 6.2/7.0)

wget https://download.redis.io/releases/redis-6.2.14.tar.gz

tar -zxvf redis-6.2.14.tar.gz

cd redis-6.2.14

编译安装

make && make install

默认安装路径:/usr/local/bin

二、Redis 核心配置文件(redis.conf)

生产环境必须使用配置文件启动,禁止直接 redis-server 裸跑。

  1. 基础必改配置

ini

后台运行(守护进程)

daemonize yes

绑定监听IP(生产环境不要用 0.0.0.0,只绑定业务IP)

bind 127.0.0.1 192.168.1.100

端口

port 6379

PID 文件路径

pidfile /var/run/redis_6379.pid

日志文件(方便排查问题)

logfile "/var/log/redis/redis.log"

数据目录

dir /var/lib/redis

  1. 安全配置(重中之重)

ini

设置强密码(生产必须配置)

requirepass 你的强密码

禁止外网直接访问

bind 内网IP

关闭危险命令(防止误删)

rename-command CONFIG ""

rename-command FLUSHDB ""

rename-command FLUSHALL ""

rename-command KEYS ""

最大客户端连接数

maxclients 10000

  1. 内存配置

ini

最大使用内存(根据服务器配置,不要超过物理内存的50%)

maxmemory 8G

内存淘汰策略(缓存场景必配)

maxmemory-policy allkeys-lru

  1. 持久化配置

ini

RDB 快照(默认开启)

save 3600 1

save 300 100

save 60 10000

AOF 日志(生产推荐开启)

appendonly yes

appendfilename "appendonly.aof"

appendfsync everysec

三、Redis 性能优化(核心)

  1. 内存优化

maxmemory:严格限制最大内存,避免 OOM 杀死进程

淘汰策略:

缓存场景:allkeys-lru(删除最近最少使用的键)

持久化存储:noeviction(不删除,直接报错)

键名设计:简短有意义,减少内存开销

避免大 key:string 控制在 10KB 内,hash/list/set 元素不超过 5000 个

  1. 网络优化

ini

关闭TCP延迟确认,降低延迟

tcp-nodelay yes

TCP 心跳

tcp-keepalive 300

系统内核优化(临时生效):

bash

运行

echo 512 > /proc/sys/net/core/somaxconn

echo "vm.overcommit_memory=1" >> /etc/sysctl.conf

sysctl -p

  1. CPU 优化

Redis 单线程,不占用多核,多核服务器可部署多实例

绑定 CPU 核心(减少上下文切换)

ini

server_cpulist 0-1

  1. 持久化优化

纯缓存业务:关闭 RDB + AOF,性能最高

必须持久化:

AOF + RDB 混合模式(Redis 4.0+ 默认支持)

appendfsync everysec(性能与安全平衡)

避开业务高峰期自动备份

四、安全优化

设置密码:requirepass

禁止外网访问:bind 内网IP + 防火墙限制

禁用危险命令:rename-command

低权限运行:不要用 root 运行 Redis

修改默认端口:不要用 6379

开启密码认证:连接必须验证

五、高可用方案(生产必备)

  1. 主从复制(读写分离)

ini

从库配置

replicaof 主库IP 主库端口

masterauth 主库密码

replica-read-only yes

  1. 哨兵模式(自动故障转移)

至少 3 个哨兵节点

主库宕机自动选举从库升级为主库

配置文件:sentinel.conf

  1. Redis Cluster(集群,分布式存储)

支持水平扩容

自动分片存储数据

适合大数据量、高并发场景

六、Redis 日常运维命令

bash

运行

启动

redis-server /etc/redis.conf

连接

redis-cli -h IP -p 端口 -a 密码

查看内存

info memory

查看配置

config get *

动态修改配置

config set maxmemory 8G

七、常见问题与解决方案

Redis 占满内存

配置 maxmemory + 淘汰策略

清理大 key、过期 key

Redis 变慢

关闭持久化

避免大 key、慢查询

开启 tcp-nodelay

数据丢失风险

开启 AOF

主从 + 哨兵

被攻击

必须设置密码

禁止外网访问

禁用危险命令

总结

配置核心:密码、内存限制、持久化、绑定 IP

优化核心:内存淘汰、禁止大 key、网络内核调优、关闭无用持久化

安全核心:密码、内网访问、禁用危险命令、低权限运行

高可用:主从 + 哨兵(中小型)、Cluster(大型

相关推荐
百结2144 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
刘晨鑫14 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
Wyawsl4 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
木梯子1 天前
共适·共盈 | 靓范医生崔文祯主任、薛钧玮主任受邀出席艾尔建研习沙龙
nosql
Francek Chen4 天前
【大数据存储与管理】NoSQL数据库:02 NoSQL兴起的原因
大数据·数据库·分布式·nosql
wb1897 天前
NoSQL数据库Redis集群重习
数据库·redis·笔记·云计算·nosql
Francek Chen7 天前
【大数据存储与管理】NoSQL数据库:01 NoSQL简介
大数据·数据库·分布式·nosql
Lumiya208810 天前
5G全连接工厂赋能 江西京尚实业数智化改造重塑陶瓷产业新生态
nosql
XDHCOM10 天前
NoSQL查询语言问世,CouchDB与SQLite联手革新数据库交互方式,让数据操作更高效
数据库·nosql·couchdb