场景
使用Docker拉取的Redis,从docker中启动redis容器,默认是没有配置文件的
持久化
- RDB:按照一定的时间间隔定时以快照的形式保存,也可主动触发
- AOF:以记录日志的方式进行保存
- Redis持久化方式,目前有RDB和AOF,默认的是RDB,具体每种的保存/实现/触发机制,以及优缺点,自行百度,这里只介绍如何使用Docker方式启动Redis配置持久化,docker安装redis看这篇文章:Docker安装Redis
准备
- 去官网下载Reids中redis.conf的配置文件,总之想办法找一份redis.conf的配置文件
- 创建文件夹/root/redis和/root/redis/data用来存放数据,可以是其他位置
- /data和/etc/redis这两个目录最好也自己手动创建
配置文件修改
注释掉bind,不然只能安装Redis本机访问
代码语言:javascript复制#bind 127.0.0.1
开启AOF持久化
代码语言:javascript复制appendonly yes
写入机制
代码语言:javascript复制#每次有修改就立刻写入
# appendfsync always
#每秒钟写入一次(推荐该方式)
appendfsync everysec
#让Redis自动判断
# appendfsync no
保存文件的名字,默认即可
代码语言:javascript复制appendfilename "appendonly.aof"
保存数据的位置
代码语言:javascript复制#当前目录,可选择其他目录
dir ./
配置连接密码
代码语言:javascript复制requirepass pwd123456
运行容器
代码语言:javascript复制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文件夹中生成保存的文件