Redis 实例是否可以配置为不覆盖旧快照?
Can a Redis instance be configured to NOT overwrite old snapshots?
目前我正在使用 redis.conf
文件为我的实例提供固定目录和文件名以保存 redis dump.rdb
快照。
我的目的是比较不同时间拍摄的两个redis快照。
但是 Redis 在创建新转储文件后会重写旧的转储文件。
我检查了 github 上的 redis 存储库并找到了 rdb.c
文件,其中包含执行 SAVE
命令并重写旧快照的代码。
在搞乱代码之前(因为我不是一个有经验的开发者),我想问一下是否有更好的方法来保存不同时间拍摄的快照?或者我是否可以一次只保存最后 2 个快照?
您可以使用incron查看转储目录并执行脚本
sudo apt-get install incron
echo "redis" >> /etc/incron.allow
export EDITOR=vi
incrontab -e
/path/where/you/dump/files IN_CLOSE_WRITE,IN_CREATE,IN_DELETE /bin/copy_snapshot
然后创建一个 /bin/copy_snapshot 脚本文件,用日期或其他名称重命名它,并确保有 X 份副本
目前我正在使用 redis.conf
文件为我的实例提供固定目录和文件名以保存 redis dump.rdb
快照。
我的目的是比较不同时间拍摄的两个redis快照。 但是 Redis 在创建新转储文件后会重写旧的转储文件。
我检查了 github 上的 redis 存储库并找到了 rdb.c
文件,其中包含执行 SAVE
命令并重写旧快照的代码。
在搞乱代码之前(因为我不是一个有经验的开发者),我想问一下是否有更好的方法来保存不同时间拍摄的快照?或者我是否可以一次只保存最后 2 个快照?
您可以使用incron查看转储目录并执行脚本
sudo apt-get install incron
echo "redis" >> /etc/incron.allow
export EDITOR=vi
incrontab -e
/path/where/you/dump/files IN_CLOSE_WRITE,IN_CREATE,IN_DELETE /bin/copy_snapshot
然后创建一个 /bin/copy_snapshot 脚本文件,用日期或其他名称重命名它,并确保有 X 份副本