Redis 单点 Docker 启动及其持久化配置

Docker Image Version

redis:7.0.11-alpine

单点删除
docker rm -f redis-single
单点启动
docker run -d --hostname redis-single --name redis-single --log-driver=json-file \
--log-opt max-size=100m --log-opt max-file=3 --restart=unless-stopped \
-v redis-single:/data -p 6379:6379 redis:7.0.11-alpine redis-server \
--requirepass ChangeMe --appendonly yes

这样启动所有数据库自动备份文件会保存在容器的/data下面,如下所示

/data # ls -l
total 12
drwx------    2 redis    redis         4096 Jun 14 10:57 appendonlydir
-rw-------    1 redis    redis           89 Jun 14 11:00 dump.rdb
-rw-------    1 redis    redis            2 Jun 14 10:57 redis_6379.pid

其中appendonlydir 存放备份的AOF文件。

持久化

Redis 持久化配置有四种模式,如下表所示:

模式解释
RDB (Redis Database)每隔一段时间间隔给 Redis 数据集做一次快照。这种模式能以较快的速度恢复数据,但是会丢失间隔时间内的数据,默认打开
AOF (Append Only File)持久化每一次写入操作至日志。当服务重启的时候,可根据日志恢复数据。这种模式虽然可以最大程度恢复数据,但是持久化日志处理操作较多且会占用较大性能和空间,且数据恢复时间较慢。它默认是不打开的,需要设置--appendonly yes,同时默认每秒向硬盘同步一次数据,也就是说最多丢失一秒的数据
No persistence不持久化,通常 Redis 用来做高速缓存
RDB + AOF两种模式都配置,但 Redis 会优先选择 AOF 恢复数据
RDB 模式操作

RDB 模式开启后,是按照在满 M 次写操作后且到达间隔时间 N 秒后进行的备份,备份文件名默认为dump.rdb如上所示。手动操作我们则有两种指令savebgsave,但是save会阻断 Redis 读写,所以一般用bgsave在后台使用。

bgsave N M

AOF 模式操作

首先也是最重要的是配置appendonlyyes,同时它还有一个appendfsync参数,有三种配置为alwayseverysecno三种。always操作将会导致 Redis 数据库性能变得非常非常慢,失去了这款数据库自身存在意义;而no则是使用所在系统的文件系统同步时间,一般默认为 30s ,这样就会丢失较多数据;所以这个参数我们尽可能使用默认值 everysec。其手动执行会导致与自动执行冲突,产生不可控的 bug,所以在这里不做赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值