1、部署方法
1.1 标题创建数据和配置存放目录
# 创建 redis 配置存放目录
mkdir -p /home/docker/redis/myredis/conf && chmod 777 /home/docker/redis/myredis/conf
# 创建 redis 数据存放目录
mkdir -p /home/docker/redis/myredis/data && chmod 777 /home/docker/redis/myredis/data
1.2 下载并编辑配置文件
# 进入 redis 配置文件目录
cd /home/docker/redis/myredis/conf
# 下载 redis 示例配置文件
wget http://download.redis.io/redis-stable/redis.conf
编辑配置文件,搜索这些配置项并更改,有些默认值本来就是这些就不用改
# 设置 redis 连接密码
requirepass 123456789
# 数据持久化 - 开始
# 开启 AOF 持久化
appendonly yes
# AOF文件刷新的方式
# always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
# everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
# no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
appendfsync everysec
# 随着持久化的不断增多,AOF文件会越来越大,这个时候就需要AOF文件重写了。AOF文件重写
# 如果该参数取值为yes,那么在重写AOF文件时能提升性能,但可能在重写AOF文件时丢失数据。
# 如果取值为no,则不会丢失数据,但较取值为yes的性能可能会降低。默认取值是no。
no-appendfsync-on-rewrite no
# AOF文件重写
# 参数能指定重写的条件,默认是100,
# 即如果当前的AOF文件比上次执行重写时的文件大一倍时会再次触发重写操作。
# 如果该参数取值为0,则不会触发重写操作。
auto-aof-rewrite-percentage 100
# AOF文件重写
# 指定触发重写时AOF文件的大小,默认是64MB。
auto-aof-rewrite-min-size 64mb
# auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size 两个参数指定的重写条件是“And”的关系。
# 即只有当同时满足这两个条件时才会触发重写操作。
# 允许外部ip连接
bind * -::*
# 关闭保护模式,即允许外部网络直接访问
protected-mode no
# Redis key 过期事件监听
notify-keyspace-events Ex
1.3 启动容器
docker run -itd -p 6379:6379 --name redis --restart=always -v /home/docker/redis/myredis/data:/data -v /home/docker/redis/myredis/conf/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/myredis/downloads:/usr/Downloads redis redis-server /etc/redis/redis.conf --appendonly yes
参数解析
【-itd】
i:以交互模式运行容器,通常与 -t 同时使用;
t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
d:表示后台启动redis;
【-p 6379:6379】 将宿主机6379端口与容器内6379端口进行映射;
【–-name】 给容器命名;
【--restart=always】 开机启动,失败也会一直重启;
【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;
【redis-server /etc/redis/redis.conf】 以配置文件启动redis,加载容器内的conf文件;
【-–appendonly yes】 开启redis 持久化;
1.4 连接Redis
# 在容器 redis 中开启一个交互模式的终端
docker exec -it redis /bin/bash
# 使用Redis官方工具连接
redis-cli
# 密码登录
auth 你设置的连接密码
也可使用桌面客户端工具Another Redis Desktop Manager
github下载:https://github.com/qishibo/AnotherRedisDesktopManager
新建连接,填写ip、端口、密码即可,使用方法详见官方文档
2、遇到的问题
2.1 启动容器后docker ps查看redis一直在重启
# 查看容器日志
docker logs redis
# 日志内容
*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments
*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments
*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments
*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 416
>>> 'locale-collate ""'
Bad directive or wrong number of arguments
报错信息提示是redis.conf配置文件有问题
redis.conf官方下载地址:https://redis.io/docs/management/config/
根据上面查看的报错信息,我的redis版本是6.2.6,点6.2那个,在新页面中复制所有内容,替换redis.conf中的内容,重启容器即可