映射配置文件数据卷到本地
version: '3.1'
services:
redis:
image: daocloud.io/library/redis:5.0.7
restart: always
container_name: redis
environment:
- TZ=Asia/Shanghai
ports:
- 6379:6379
volumes:
- ./conf/redis.conf:/usr/local/redis/redis.conf
command: ["redis-server","/usr/local/redis/redis.conf"]
[root@localhost docker-redis]# docker-compose down
[root@localhost docker-redis]# docker-compose up -d
1.Redis的AUTH
[root@localhost docker-redis]# cd ./conf/
[root@localhost conf]# vi redis.conf
requirepass 密码 # 编写后下次连接redis需要输入密码
root@9a27afdb3fa4:~# redis-cli
127.0.0.1:6379> auth 密码 # 输入配置文件设置的密码
2.Redis持久化机制
-
RDB是Redis默认的持久化机制。
-
RDB持久化文件,速度比较快,而且存储的是一个二进制文件,传输起来很方便。
-
RDB无法保证数据的绝对安全。
RDB持久化基本配置
[root@localhost docker-redis]# cd ./conf/
[root@localhost conf]# vi redis.conf
save 900 1 # 在900秒内,有一个key改变了,就执行RDB持久化。
save 300 10
save 60 10000
rdbcompression yes # 开启RDB持久化的压缩
dbfilename dump.rdb # RDB持久化文件的名称
# 修改yml文件,映射数据备份的数据卷
[root@localhost docker-redis]# cat docker-compose.yml
services:
redis:
image: daocloud.io/library/redis:5.0.7
restart: always
container_name: redis
environment:
- TZ=Asia/Shanghai
ports:
- 6379:6379
volumes:
- ./conf/redis.conf:/usr/local/redis/redis.conf
- ./data:/data
command: ["redis-server","/usr/local/redis/redis.conf"]
AOF持久化策略
AOF持久化机制默认是关闭的,Redis官方推荐同时开启RDB和AOF持久化,更安全,避免数据丢失。
- AOF持久化的速度,相对RDB较慢,存储的是一个文本文件,到了后期文件会比较大,传输困难。
# 代表开启AOF持久化
appendonly yes
# 指定AOF文件的名称
appendfilename "redis.aof"
# AOF持久化执行的时机
appendfsync always # 每执行一个写操作,立即持久化到AOF文件中,性能比较低。
appendfsync everysec # 每秒执行一次持久化。
appendfsync no # 会根据你的操作系统不同,环境的不同,在一定时间内执行一次持久化。
同时开启RDB和AOF
如果同时开启了AOF和RDB持久化,那么在Redis宕机重启之后,需要加载一个持久化文件,优先选择AOF文件。
如果先开启RDB,再开启AOF,RDB执行了持久化,那么RDB文件中的内容会被AOF覆盖掉。