perf(redis): 增强持久化与优雅停止
Test deployment public URL (Linux) / test-linux (push) Canceled after 0s
Test start.ps1 (Windows) / test-windows (push) Canceled after 0s

This commit is contained in:
2026-08-25 16:24:36 +08:00
parent 7dc4313de6
commit 40732c011b
2 changed files with 12 additions and 5 deletions
+1
View File
@@ -231,6 +231,7 @@ services:
- ./redis.conf:/etc/redis/redis.conf # 挂载本地 redis.conf - ./redis.conf:/etc/redis/redis.conf # 挂载本地 redis.conf
- ./data/redis:/data # 持久化 Redis AOF/RDB,避免落到容器写层 - ./data/redis:/data # 持久化 Redis AOF/RDB,避免落到容器写层
command: [ "redis-server", "/etc/redis/redis.conf" ] # 让 Redis 读取配置文件 command: [ "redis-server", "/etc/redis/redis.conf" ] # 让 Redis 读取配置文件
stop_grace_period: 1m # 给 Redis 足够时间在 SIGTERM 后完成 AOF fsync
mem_limit: 2g mem_limit: 2g
memswap_limit: 2g memswap_limit: 2g
# ports: # ports:
+11 -5
View File
@@ -31,17 +31,25 @@ tcp-backlog 511
replica-read-only no replica-read-only no
# 设置Redis最大内存达到时的数据淘汰策略 # 设置Redis最大内存达到时的数据淘汰策略
# noeviction:当内存达到最大限制时,Redis不会自动删除任何键,这可能导致进一步的操作失败,直到手动干预 # 当内存不足时,删除最近最少使用的键 # 为 2GB 容器预留约 512MB,供连接缓冲区、模块、AOF 重写和 fork/COW 使用。
# noeviction:达到数据内存上限后拒绝写入,避免淘汰队列内部键导致状态不一致。
# maxmemory-policy allkeys-lru # maxmemory-policy allkeys-lru
maxmemory 2gb maxmemory 1536mb
maxmemory-policy noeviction maxmemory-policy noeviction
# 设置数据库数量,这里设置为16个数据库 # 设置数据库数量,这里设置为16个数据库
databases 16 databases 16
# AOF 常规配置 # AOF 常规配置
appendfsync everysec appendfsync everysec
no-appendfsync-on-rewrite yes # AOF/RDB 重写期间继续 fsync,优先保证异常退出后的数据完整性。
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100 auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb auto-aof-rewrite-min-size 64mb
# 自动修复意外 EOF;Redis 8.4+ 可额外截断小范围格式损坏尾部。
aof-load-truncated yes
aof-load-corrupt-tail-max-size 4096
# 使用 RDB 作为 AOF 基础文件并增量刷盘,降低重写和恢复开销。
aof-use-rdb-preamble yes
aof-rewrite-incremental-fsync yes
# 慢查询阈值 # 慢查询阈值
slowlog-log-slower-than 10000 slowlog-log-slower-than 10000
slowlog-max-len 128 slowlog-max-len 128
@@ -67,5 +75,3 @@ list-max-ziplist-value 64
set-max-intset-entries 512 set-max-intset-entries 512
zset-max-ziplist-entries 128 zset-max-ziplist-entries 128
zset-max-ziplist-value 64 zset-max-ziplist-value 64