perf(redis): 优化 Redis 配置并添加资源限制

- 为 Redis 添加 ./data/redis:/data 持久化挂载
- 在 redis.conf 中设置 maxmemory 2gb 限制内存使用
- 禁用 RDB 快照,启用 appendfsync everysec 避免 OOM
- 在 docker-compose.yml 中为 Redis 添加 mem_limit: 2g 和 memswap_limit: 2g
- 为 MongoDB 添加 --wiredTigerCacheSizeGB 1.5 和 mem_limit: 2500m
- 为 easyai-server 添加 mem_limit: 2200m 内存限制
- 更新 README.md 文档说明 Redis 资源护栏和迁移步骤
This commit is contained in:
2026-06-22 23:20:40 +08:00
parent 42ef68857d
commit 0aebe62f70
3 changed files with 42 additions and 10 deletions
+7 -10
View File
@@ -15,16 +15,15 @@ daemonize no
#pidfile /data/dockerData/redis/run/redis6379.pid
#默认为no,redis持久化,可以改为yes
appendonly yes
dir /data
#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 # 增加到300秒,或设为0禁用
timeout 300
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
# 减少到60秒,更快检测连接问题
tcp-keepalive 60
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000
# 禁用 RDB 快照,避免小内存机器上 fork bgsave 触发 OOM;生产保留 AOF。
save ""
# 按需求调整 Redis 线程数
tcp-backlog 511
# 设置Redis副本实例是否为只读模式
@@ -34,14 +33,13 @@ replica-read-only no
# 设置Redis最大内存达到时的数据淘汰策略
# noeviction:当内存达到最大限制时,Redis不会自动删除任何键,这可能导致进一步的操作失败,直到手动干预 # 当内存不足时,删除最近最少使用的键
# maxmemory-policy allkeys-lru
maxmemory 2gb
maxmemory-policy noeviction
# 设置数据库数量,这里设置为16个数据库
databases 16
# 启用 AOF, AOF常规配置
appendonly yes
# 改为由操作系统决定何时同步,减少I/O压力
appendfsync no
no-appendfsync-on-rewrite no
# AOF 常规配置
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 慢查询阈值
@@ -71,4 +69,3 @@ zset-max-ziplist-entries 128
zset-max-ziplist-value 64