Docker部署Redis
创建数据卷映射目录
这里我存放的路径为data/app
为例,按需创建data、conf、log目录
1 2 3
| mkdir -p /data/app/redis/data mkdir -p /data/app/redis/conf mkdir -p /data/app/redis/log
|
获取配置文件
关于拉取配置文件这里建议访问redisConfig看一下,当前稳定的版本是哪些
截止至此文发布时最新版本为7.2
,这里直接拿7.2
做演示,在RedisGithub仓库中找到对应版本的redis.conf
文件,点击复制
在/data/app/redis/conf/
路径下创建redis.conf
文件,随后修改文件,直接将复制的内容粘贴进去
1 2 3 4
| touch redis.conf vim redis.conf 或 vi redis.conf
|
修改配置文件
1 2 3 4 5 6 7
| vim redis.conf
daemonize yes port 6379 bind 127.0.0.1 requirepass
|
常用注释说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| daemonize no pidfile /var/run/redis_6379.pid port 6379 bind 127.0.0.1 requirepass
timeout 0 tcp-keepalive 0
tcp-backlog 511 tcp-keepalive 300 unixsocket /var/run/redis/redis.sock unixsocketperm 700
loglevel notice logfile /var/log/redis/redis.log syslog-enabled no syslog-ident redis syslog-facility local0 databases 16
save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb
appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes
slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-ping-slave-period 10 repl-timeout 60 repl-disable-tcp-nodelay no slave-priority 100
sentinel deny-scripts-reconfig yes sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000
always-show-logo
hz
include
lua-time-limit
repl-backlog-size
repl-diskless-sync
repl-ping-slave-period
repl-timeout
appendonly
appendfilename
appendfsync
save
rdbcompression
maxmemory-policy
client-output-buffer-limit
notify-keyspace-events
|
启动redis容器
在启动Redis容器前,请确定你的数据卷映射。在下属示例中,数据卷映射的路径为/data/app/redis/xxxx
,如果不一样请记得修改。启动容器后,系统将自动从远程仓库拉取相应版本的Redis镜像。请务必确保所拉取的Redis版本与之前复制的配置文件版本一致。
1 2 3 4 5 6 7 8
| docker run -p 6379:6379 \ --name redis \ -v /data/app/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /data/app/redis/data:/data \ -v /data/app/redis/logs:/logs \ --restart always \ -d redis:7.2 redis-server /etc/redis/redis.conf \ --appendonly yes
|
或不指定配置文件启动,不要/etc/redis/redis.conf:
1 2 3 4 5 6 7 8
| docker run -p 6379:6379 \ --name redis \ -v /data/app/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /data/app/redis/data:/data \ -v /data/app/redis/log:/var/log/redis \ --restart always \ -d redis:7.2 redis-server \ --appendonly yes
|
必须:
- -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
- –name myredis 指定该容器名称,查看和进行操作都比较方便。
可选:
- -v 挂载目录,规则与端口映射相同。
- -d redis 表示后台启动redis
- redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的录/data/app/redis/conf/redis.conf
- appendonly yes 开启redis 持久化
- —restart always 表示开机启动
- —network serms-net 网卡
常用命令
- 进入redis容器使用redis-cli命令进行连接
1
| docker exec -it redis redis-cli
|
1 2
| docker logs myredis docker logs --since 30m <容器名>
|
正常删除容器,一般是先停止容器,再进行删除
1 2 3 4 5
| docker stop [容器名|容器ID] docker start [容器名|容器ID] docker restart [容器名|容器ID] docker kill [容器名|容器ID] docker rm [容器名|容器ID]
|
常见报错
如果还有其他问题可留言,博主会尽力帮你解决
Redis Client On Error: Error: write ECONNABORTED Config right?
方法一
bind 0.0.0.0 注释 或者设置为bind 0.0.0.0
protected-mode 设置为no
方法二
设置密码