docker 配置redis持久化

本文介绍如何在Docker环境下配置Redis服务,并详细解释RDB与AOF两种持久化方式的工作原理及配置方法。通过示例展示如何创建Redis配置文件并运行容器,确保数据的可靠性和一致性。

 

使用配置启动redis

首先创建一个redis配置文件/etc/docker-conf/redis/redis.conf

内容为下,注意:daemonize 不能启用yes

# 端口
port 6379

# 后台运行 (docker中后台运行导致无任务可做而退出)
daemonize no

# 日志
# logfile "6379.log"

# 持久化文件夹
# dir "out/"

# 持久化文件
dbfilename dump-6379.rdb

# 持久化压缩
rdbcompression yes

# 持久化文件校验
rdbchecksum yes

   运行容器

docker run -v /etc/docker-conf/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 --name myredis redis redis-server /usr/local/etc/redis/redis.conf

redis持久化

     持久化文件存储位置默认在/data/目录下

一、 RDB

    1.  SAVE 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘,它会阻塞所有客户端。

    2.  BGSAVE 在后台异步(Asynchronously)保存当前数据库的数据到磁盘。命令执行之后立即返回 OK

    3.  LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。

你也可以通过调用 SAVE 或者 BGSAVE , 手动让 Redis 进行数据集保存操作。

比如说, 以下设置会让 Redis 在满足“ 60 秒内有至少有 1000 个键被改动”这一条件时, 自动保存一次数据集:

save 60 1000

二、 AOF(常用)

    配置:

# 是否开启AOF持久化功能,默认为不开启

appendonly yes|no

# AOF写数据策略 (默认everysec)

appendfsync always|everysec|no

 

 

 

 

### 如何在 Docker 中安装并配置 Redis 实现持久化存储 要在 Docker 容器中运行 Redis 并启用持久化存储,可以按照以下方法操作: #### 启动带有持久化Redis 容器 为了使 Redis 数据能够保存到本地磁盘上,在启动容器时需要挂载宿主机的一个目录作为数据卷。通过 `-v` 参数指定宿主机上的路径映射到容器内的 `/data` 路径,并设置 `--appendonly yes` 来开启 AOF(Append Only File)模式。 以下是具体的命令示例: ```bash docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes ``` 这条命令的作用如下: - `-p 6379:6379`: 将容器内部的端口 6379 映射到宿主机的相同端口。 - `-v $PWD/data:/data`: 把当前工作目录下的 `data` 文件夹挂载至容器中的 `/data` 目录,用于存储持久化文件。 - `redis:latest`: 使用官方最新的 Redis 镜像版本。 - `redis-server --appendonly yes`: 设置 Redis持久化方式为 AOF 模式[^1]。 #### 关于 Redis 持久化机制的选择 Redis 提供两种主要的数据持久化方案——RDB 和 AOF。其中 RDB 是一种快照式的持久化策略,默认情况下每五分钟自动触发一次;而 AOF 则记录每次写入操作的具体指令,因此具备更高的安全性以及更少的数据丢失风险。对于大多数生产环境而言,建议同时启用这两种机制来保障数据可靠性。 当采用上述命令创建容器时,实际上已经启用了 AOF 功能。如果希望进一步调整参数或者单独依赖 RDB,则可以在启动前自定义一份配置文件并通过额外选项加载它。 #### 创建定制版 Config 文件的方法 假如想修改默认行为比如更改备份频率或是关闭某些特性的话,先准备一个名为 `redis.conf` 的文本档内容如下所示: ```conf save 900 1 save 300 10 save 60 10000 appendonly no dir /data/ ``` > 上述例子表示每隔十五分钟如果有至少一条改动就生成新的 dump.rdb 文件存放到指定位置;同时也禁用了AOF日志功能以便单纯依靠定期全量转储完成恢复作业。 之后再利用下面的方式引入该设定表单: ```bash docker run -p 6379:6379 -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data -d redis:latest redis-server /usr/local/etc/redis/redis.conf ``` 这样做的好处是可以灵活控制各项细节满足特定需求的同时保持良好的性能表现。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值