我正尝试在我的redis实例上执行save或bgsave,以便在备份/恢复过程中运行。然而,当我尝试保存时,我得到了错误:
532:M 28 Jun 23:58:30.396 # Failed opening the RDB file backup.rdb (in server root dir /var/lib/redis) for saving: Read-only file system
对/var/lib/redis文件夹的权限:
$@/var/lib$ ls -artl | grep redis
drwxrwxrwx 3 redis redis 4096 Jun 28
我们在集群中使用来管理DB。
因此,Redis是通过部署的,KubeDB将PVC附加到Redis吊舱。
不幸的是,KubeDB不支持任何恢复或备份红宝石转储(目前)。
对于备份,我们的解决方案是运行一个CronJob,它将dump.rdb从Redis复制到作业荚中,然后将其上传到S3。
为了恢复垃圾场,我也想做同样的事情,只是反过来。有一个临时结束符,它下载S3备份,然后将其复制到dump.rdb位置。
redis.conf看起来如下所示:
....
# The filename where to dump the DB
dbfilename dump.rdb
# The working d
我在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_l
我尝试在Redis中使用混合持久化(RDB + AOF作为tail),配置如下:
aof-use-rdb-preamble yes appendonly yes save 10 1 # <-- just to speed the tests
我假设在重新启动Redis时,会从RDB文件中加载种子数据。
我希望每次写入RDB时,AOF文件都会被刷新,以便只保留尾部(自上次保存RDB以来的最新更新)。
这可以通过一些配置来实现吗?
运行一段时间后,我的redis实例出现写入错误: (error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsav
我想检查哪些redis转储是可用的,所以在redis-cli中我做到了
127.0.0.1:6379> config get dir
1) "dir"
2) "/var/lib/redis"
此外:
127.0.0.1:6379> config get databases
1) "databases"
2) "16"
在我的/var/lib/redis目录中,我发现了两个.rdb文件
root@docker-elk01:/var/lib/redis# ls -lh
total 4.4G
-rw-r--r-- 1 red
我正在跟踪关于如何恢复Redis的,在这一点上我完全不知所措。
文件上说
127.0.0.1:6379> SAVE
OK
此命令将在redis目录中创建dump.rdb文件。
它为我在/usr/lib/redis中创建了完全相同的文件,我想这是好的。
要恢复redis数据,只需将redis备份文件(dump.rdb)移动到您的redis目录并启动服务器即可。要获得redis目录,可以使用CONFIG命令。CONFIG GET命令用于读取正在运行的Redis服务器的配置参数。
127.0.0.1:6379> CONFIG get dir
1) "dir"
2)
我在cmd下面运行我的Docker容器,但是容器不能工作。当我将配置daemonize yes更改为daemonize no in redis-6379.conf时,它可以工作!谁能告诉我为什么?
➜ ls
6379.log docker-entrypoint.sh dump.rdb redis-6379.conf
➜ cat redis-6379.conf
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/data/"
➜ do