Rspamd + Redis:是否需要持久化 Redis 数据库?如果需要,如何持久化?

Rspamd + Redis:是否需要持久化 Redis 数据库?如果需要,如何持久化?

我正在使用 rspamd,并且启用了 Redis。据我了解,Redis 是一个在记忆中核心价值缓存为了易挥发的数据。然而,rspamd 文档说贝叶斯分类器模块使用 Redis 来存储非挥发性分类器已学习到的有关正常/垃圾邮件的统计数据。这让我很困惑。

目前,我在日志中看到以下警告

rspamd[515182]: <6853da>; proxy; rspamd_redis_connected: skip obtaining bayes tokens for BAYES_HAM of classifier bayes: not enough learns 19; 200 required
rspamd[515182]: <6853da>; proxy; rspamd_redis_connected: skip obtaining bayes tokens for BAYES_SPAM of classifier bayes: not enough learns 4; 200 required

这对我来说没问题,因为我最近才设置了邮件服务器和 rspamd。19 个正常邮件和 4 个垃圾邮件标记来自我使用 Sieve 脚本和 脚本执行的一些初始测试learn-hamlearn-spam因此,rspamd 尚未看到足够的训练数据,这确实是正确的。

但是,这让我怀疑我是否必须备份 Redis 数据库。假设邮件服务器已经运行了一段时间,Rspamd 已经根据来自用户的真实垃圾邮件/非垃圾邮件进行了训练,然后服务器或 Redis 守护进程重新启动。所有的训练数据都会丢失吗?这听起来不对。

但据我了解,Redis 不应该用于持久数据存储,并且 rspamd 文档中也没有警告应该持久保存 Redis 数据库。

答案1

据我所知,Redis 不应该用于持久数据存储

根据 Redis 自己的关于页面持久性是一个非常有效的用例:

Redis 具有内置复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久性,并通过 Redis Sentinel 和 Redis Cluster 自动分区提供高可用性。

还有详尽的文档关于不同的持久性选项。

相关内容