3.持久化配置

映射配置文件数据卷到本地

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覆盖掉。

原文地址:https://www.cnblogs.com/eba001/p/14318336.html