场景

使用Docker拉取的Redis,从docker中启动redis容器,默认是没有配置文件的

持久化

  • RDB:按照一定的时间间隔定时以快照的形式保存,也可主动触发
  • AOF:以记录日志的方式进行保存
  • Redis持久化方式,目前有RDB和AOF,默认的是RDB,具体每种的保存/实现/触发机制,以及优缺点,自行百度,这里只介绍如何使用Docker方式启动Redis配置持久化,docker安装redis看这篇文章:Docker安装Redis

准备

  1. 去官网下载Reids中redis.conf的配置文件,总之想办法找一份redis.conf的配置文件
  2. 创建文件夹/root/redis和/root/redis/data用来存放数据,可以是其他位置
  3. /data和/etc/redis这两个目录最好也自己手动创建

配置文件修改

注释掉bind,不然只能安装Redis本机访问

#bind 127.0.0.1

开启AOF持久化

appendonly yes

写入机制

#每次有修改就立刻写入
# appendfsync always
#每秒钟写入一次(推荐该方式)
appendfsync everysec
#让Redis自动判断
# appendfsync no

保存文件的名字,默认即可

appendfilename "appendonly.aof"

保存数据的位置

#当前目录,可选择其他目录
dir ./

配置连接密码

requirepass pwd123456

运行容器

docker run --restart=always -p 6379:6379 --name docker_redis -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
  • run:运行
  • –restart=always:当docker重启时,该容器也会重新启动
  • -d redis:后台运行redis镜像
  • -p:映射端口号,容器内部和服务器内部关联
  • --appendonly yes:持久化
  • –name docker_redis:启动一个redis并设置docker容器名称为docker_redis
  • -v /root/redis/redis.conf:/etc/redis/redis.conf:将服务器中redis.conf文件映射到docker中
  • -v /root/redis/data:/data:同上
  • redis-server /etc/redis/redis.conf:以加载配置文件方式启动

测试

运行过之后,重启Redis服务,将会在/root/redis/data文件夹中生成保存的文件