这个问题是关于Redis的持久性.
我正在使用redis作为社交网站的"快速后端".这是一个单一的服务器设置.我一直在将PostgreSQL职责转移到Redis.目前etc/redis/redis.conf,appendonly设置设置为appendonly no.快照设置save 900 1,save 300 10,save 60 10000.所有这一切都适用于生产和开发.根据生产日志,save 60 10000可以大量调用.这是否意味着实际上,我每隔60秒就会获得一次备份?
一些文献建议将AOF和RDB备份一起使用.因此,我一直在努力转动appendonly on和使用appendfsync everysec.任何有过双方经验的人:
1)是否会使用appendonly on并appendfsync everysec导致性能下降?它会击中CPU吗?写入负载偏高.
2)一旦我用这些新设置重启redis服务器,我仍然会丢失我的数据的最后60秒,对吗?
3)重启时间是否需要担心?我的dump.rdb档案很小; 〜90MB.
我正试图找到更多关于redis持久性的信息,并且正确地得到我的期望.就个人而言,在遇到灾难的情况下,我很好地丢失了60个数据,因此我是否应该使用AOF也是我在思考的问题.随意加入.谢谢!
for*_*ack 25
这是否意味着实际上,我每隔60秒就会获得一次备份?
不.如果至少有10000个键被更改,Redis会在60秒后执行后台保存.否则,它不会进行后台保存.
是否会使用appendonly on和appendfsync everysec导致性能降级?它会击中CPU吗?写入负载偏高.
它取决于许多因素,例如磁盘性能(SSD VS HDD),写入/读取负载(QPS),数据模型等.您需要在特定环境中使用自己的数据进行基准测试.
一旦我使用这些新设置重新启动redis服务器,我仍然会丢失我的数据的最后60秒,对吗?
不.如果同时打开AOF和RDB,Redis重新启动时,AOF文件将用于重建数据库.由于您将其配置为appendfsync everysec,您将只丢失最后1秒的数据.
重启时间是否需要担心?我的dump.rdb文件很小; 〜90MB.
如果打开AOF,Redis重新启动时,它会重播AOF文件中的日志以重建数据库.通常AOF文件比RDB文件大,并且可能比从RDB文件恢复要慢.你应该担心吗?在特定环境中使用您自己的数据做基准测试.
编辑
重要的提醒
假设您已将Redis设置为使用RDB保存,并将大量数据写入Redis.过了一会儿,你想打开AOF保存.永远不要修改配置文件以打开AOF并重新启动REDIS,否则你将失去一切.
因为,一旦你appendonly yes在redis.conf中设置,并重新启动Redis,它将从AOF文件加载数据,无论文件是否存在.如果该文件不存在,则会创建一个空文件,并尝试从该空文件加载数据.所以你会失去一切.
实际上,您无需重新启动Redis即可打开AOF.相反,您可以使用config set命令来动态启用它:config set appendonly yes.