【发布时间】:2019-11-06 00:31:59
【问题描述】:
我在 5.0.6 版本中运行一个 6 节点集群,使用 Redis Docker 官方镜像,并且在我的配置文件中有以下配置:
SAVE ""
appendonly no
我可以确认这些设置已加载运行:
config get save
1) "save"
2) ""
config get appendonly
1) "appendonly"
2) "no"
但是Redis还是经常创建dump.rdb文件:
info persistence
# Persistence
loading:0
rdb_changes_since_last_save:364575
rdb_bgsave_in_progress:1
rdb_last_save_time:1570058274
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:68
rdb_current_bgsave_time_sec:54
rdb_last_cow_size:445624320
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
-rw-r--r-- 1 redis redis Oct 2 19:19 dump.rdb
-rw-r--r-- 1 redis redis Oct 2 18:02 nodes.conf
-rw-r--r-- 1 redis redis Oct 2 19:20 temp-260.rdb
我检查了运行 INFO COMMANDSTATS 的应用程序是否正在发出 BGSAVE 命令,但事实并非如此。
我尝试为 SAVE 设置一个非常大的值( CONFIG SET save "99999999999 1215752191" )以查看它是否会更改快照的频率并且它没有受到影响。快照以相同的频率保存(每隔几秒)。
持久性是集群中不能禁用的东西吗?还有其他方法可以禁用持久性吗?
谢谢,
【问题讨论】:
-
Redis 将创建一个转储文件以便与从属设备同步。对于大型数据库,默认的“client-output-buffer-limit replica”配置可能不适合完成完全同步。当数据库同步失败时,它会不断重试,迫使主服务器生成新的转储。在这种情况下,数据库转储与磁盘上的持久性无关,而是与复制本身有关。
标签: redis