TimeRainStarSky / TRSS_Script

TRSS 脚本 使用文档
https://TimeRainStarSky.github.io/TRSS_Script
45 stars 5 forks source link

[提醒] 启动云崽时 redis 未配置 AOF 持久化 #12

Closed bling-yshs closed 1 month ago

bling-yshs commented 1 month ago

redis 默认配置文件在 /etc/redis/redis.conf 但是 Trss-Yunzai.sh 里面没有加上这条路径 目前是

else
  redis-server --stop-writes-on-bgsave-error no $([ "$(uname -m)" = aarch64 ]&&echo "--ignore-warnings ARM64-COW-BUG")&
fi

需要改成

else
  redis-server /etc/redis/redis.conf --stop-writes-on-bgsave-error no $([ "$(uname -m)" = aarch64 ]&&echo "--ignore-warnings ARM64-COW-BUG")&
fi

而且 redis 自带的默认配置文件里,没有开启 aof 持久化,所以还需要 trss 准备一份改好的 redis 配置文件

如果没有开启 aof 持久化,遇上用户手动重启 TRSS_AllBot 容器,或者重启云服务器时,会导致本次 redis 运行期间的所有操作丢失,如图

9a1861a927ec4271dd856a3c1b876f2c

正常通过trss脚本关闭云崽时,不会有问题,因为 redis 正常关闭时,会自动保存当前数据到 dump.rdb 文件

不过重启容器和重启云服务器都是低频操作,redis 丢数据影响的范围也有限(主要就是qq和uid的映射关系消失,会导致面板需要重新绑定,然后群排名消失),所以其实改不改看你吧,不改也不是很有所谓,而且改起来也挺麻烦的,要动 redis 配置文件

# 内存淘汰策略 只会对设置了过期时间的键进行淘汰,基于 key 的访问频率进行判断。
maxmemory-policy volatile-lfu
# aof 每秒持久化
appendonly yes
appendfsync everysec
# 自动重写 aof 文件,防止过大
auto-aof-rewrite-min-size 64mb
TimeRainStarSky commented 1 month ago

redis默认会不定期保存数据到dump.rdb,应该只会丢失上次保存到重启这段时间的数据,此外redis没有保存重要数据,如果开启aof影响性能和硬盘?

127.0.0.1:6379> config get save
1) "save"
2) "3600 1 300 100 60 10000"
bling-yshs commented 1 month ago

@TimeRainStarSky 对的,只会丢失上次正常退出到本次异常退出时的数据

而且默认配置居然是 每 3600 秒至少有 1 次写操作时,进行一次快照保存 ,我没有注意到,不好意思,那最多只会丢失异常退出前一小时的 redis 数据

每秒 aof 几乎不会对性能有影响

TimeRainStarSky commented 1 month ago

@TimeRainStarSky 对的,只会丢失上次正常退出到本次异常退出时的数据

而且默认配置居然是 每 3600 秒至少有 1 次写操作时,进行一次快照保存 ,我没有注意到,不好意思,那最多只会丢失异常退出前一小时的 redis 数据

每秒 aof 几乎不会对性能有影响

后面还有300秒100次,60秒10000次,所以我认为不需要修改,可能丢失的数据不多且不重要

bling-yshs commented 1 month ago

ok的,我写了个脚本解决了,这个issue可以关了