Redis 持久化
- RDB 持久化 可以在指定的时间间隔内生成数据集的时间点快照。
- AOF 持久化 记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。
RDB保存了 Redis 在某个时间点上的数据集,这种文件非常适合用于进行备份。非常适用于灾难恢复,可以(在加密后)将它传送到别的数据中心。RDB在恢复大数据集时的速度比 AOF 的恢复速度要快。
AOF 文件是一个只进行追加操作的日志文件,有序地保存了对数据库执行的所有写入操作, 这些写入操作以 Redis 协议的格式保存, 内容易读, 易于对文件进行分析。
-
RDB 快照
在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。
当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作:
- Redis 调用 fork() ,同时拥有父进程和子进程。
- 子进程将数据集写入到一个临时 RDB 文件中。
- 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。
- AOF 持久化
AOF 重写的执行步骤:
- Redis 执行 fork() ,现在同时拥有父进程和子进程。
- 子进程开始将新 AOF 文件的内容写入到临时文件。
- 对于所有新执行的写入命令,父进程一边将它们累积到一个内存缓存中,一边将这些改动追加到现有 AOF 文件的末尾: 这样即使在重写的中途发生停机,现有的 AOF 文件也还是安全的。
- 当子进程完成重写工作时,它给父进程发送一个信号,父进程在接收到信号之后,将内存缓存中的所有数据追加到新 AOF 文件的末尾。
- 现在 Redis 用新文件替换旧文件,之后所有命令都会直接追加到新 AOF 文件的末尾。
redis cluster 添加一个新节点到集群
复制7006 目录一份为8000 ,修改8000里面的redis.conf的7006
为8000
cp -r 7006 8000
vim 8000/redis.conf
:%s/7006/8000/g
保存退出
- 启动8000
./redis-server 8000/redis.conf
./redis-cli --cluster add-node 127.0.0.1:8000 127.0.0.1:7001
可以看到新的节点已经加进去了。