我正在使用redis并在特定时间间隔内将数据保存到磁盘。我通常看到redis的读写时间是.2毫秒的顺序,但我看到几乎没有30毫秒的顺序。我读了redis分支后台进程将数据写入磁盘,在同一个(redis使用单线程来服务所有请求)线程上发生分叉,该线程提供读写请求。 如果这是真的,我想要一个解决方案,使持久性不会增加读写请求的延迟。
答案 0 :(得分:0)
如果您发出BGSAVE
,后台保存将会分叉。操作系统需要有一个懒惰的独立CPU线程,因为这不会影响Redis服务器的主线程。如果在redis.conf中配置save
,基本上会发生BGSAVE
。我会将其配置为关闭并在排除故障时手动发出BGSAVE。
如果您发出SAVE
,则保存将是同步的,其他客户将不得不等待。
另见here。您可能希望完全跳过rdb快照,并依赖于AOF。
另请参阅我对敏感数据的评论:SO comment。有许多方法可以确保您的数据安全。磁盘持久性只是其中之一。
希望这有帮助,TW