redis

Redis 持久化机制

Redis 提供了两种持久化机制:

  • RDB(Redis Date Base)
  • AOF(Append Only File)

RDB(Redis Date Base)

在指定时间间隔内将内存中的数据集快照写入内存,恢复时将快照文件读到内存里

Redis 单独 fork 一个子进程进行持久化,现将数据写入到一个临时文件,等持久化过程结束,在将该文件替换上次持久化好的文件。整个过程中,主进程不进行任何 IO 操作,确保了性能。如果要进行大规模数据的恢复,并且对数据恢复的完整性不敏感,那么 RDB 会比 AOF 更加高效。RDB 最后一次持久化的数据可能会丢失(持久化过程中宕机)

使用 docker-compose 初始化 Redis,将 dump.rdb 所在的目录映射到宿主机:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
# 用来保存域名相关信息的 Redis
redis-ddns:
image: redis:alpine
container_name: ali-ddns-redis-ddns
# 设置 Redis 的密码,下面记得主服务中填写对应的密码
command: redis-server --port 6380 --requirepass redis-ddns-password
volumes:
- ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- ./redis/ddns/data:/data
- ./redis/ddns/logs:/logs
networks:
net:
aliases:
- redis-ddns

修改 redis.conf 中的项:

1
2
3
4
5
6
7
logfile "/logs/redis.log"

save 3600 1
save 300 100
save 60 10000

dbfilename dump.rdb

AOF(Append Only File)