前言
… …
使用
登录并获取key值
~]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth xxx # 输入密码
OK
127.0.0.1:6379> get dev:nature:auth:permission:role.id:14
... ...
备份与恢复
-
备份
进入redis后,执行save命令,会生成dump.db文件
redis> save -
恢复
将备份的dump,db文件放置在新的redis服务器的相关目录下,重启redis服务即可 -
开启aof配置
redis.conf文件操作
appendonly yes # 表示开启AOF持久化(默认no,关闭)
appendfilename "appendonly.aof" # AOF持久化文件的名称
## AOF持久化策略有如下三种
# appendfsync always # 同步持久化,每次发生数据变更会被立即记录到磁盘,性能差但数据完整性比较好
appendfsync everysec # 异步操作,每秒记录,如果一秒钟内宕机,有数据丢失
# appendfsync no # 将缓存回写的策略交给系统,linux 默认是30秒将缓冲区的数据回写硬盘
# AOF采用文件追加的方式持久化数据,所以文件会越来越大,为了避免这种情况发生,增加了重写机制,当AOF文件的大小超过了配置所设置的阙值时,Redis就会启动AOF文件压缩,只保留可以恢复数据的最小指令集,可以使用命令bgrewriteaof;触发机制:Redis会记录上次重写时的AOF文件大小,默认配置时当AOF文件大小是上次rewrite后大小的一倍且文件大于64M时触发
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
部署含有持久化数据(RDB+AOF)的容器服务
- 这里采用bitnami/redis:5.0镜像
]# cat >> /etc/sysctl.conf <<-EOF
net.core.somaxconn=551
vm.overcommit_memory=1
EOF
]# sysctl -p
]# cat >> /etc/rc.local <<-EOF
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
]# chmod +x /etc/rc.local
]# source /etc/rc.local
]# mkdir -p /data/volume/redis
]# chmod 777 -R /data/volume/redis
]# mkdir -p /data/deploy/redis
]# cd /data/deploy/redis
redis]# cat version: "3.5"
services:
redis:
image: bitnami/redis:5.0
container_name: redis
hostname: redis
ports:
- 6379:6379
sysctls:
- net.core.somaxconn=551
environment:
- REDIS_PASSWORD=xxx
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /data/volume/redis:/bitnami/redis/data:Z
restart: always
tty: true
redis]# docker-compose up -d
结语
Redis Persistence
Redis Documentation
Redis Sentinel Documentation
Redis cluster tutorial
DockerHub redis Official Images
DockerHub redis bitnami Images
github bitnami-docker-redis