正如我们可以在 Redis 文档 ( http://redis.io/topics/persistence ) 中找到的那样,AOF Redis 有 3 个策略:
- 完全没有fsync
- 每秒同步一次
- 在每次查询时同步
我不想在每次查询时都 fsync,因为在文档中说它非常慢。 但我的部分数据至关重要,我不能丢失它。是否可以使用每秒执行一次 fsync 的策略,但为给定命令显式调用 fsync,以确保它持久保存在磁盘上?
最佳答案
小说明:当与always
策略一起使用时,AOF 仅在write 查询后写入。
没有标准的方法或策略可以做到这一点,但您可以通过包装您的“关键写入”并在事务中调用 CONFIG SET
来解决这个问题,即:
SET key1 "redundant"
MULTI
CONFIG SET appendfsync always
SET key2 "crucial"
CONFIG SET appendfsync everysec
EXEC
SET key3 "transient"
我前段时间在 v2.8 中测试过它,它似乎可以工作,但是 YMMV ;)
关于Redis——AOF持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568498/