docker安装启动redis
一、拉取镜像
1、在线拉取镜像命令: docker pull redis 2、无网情况下 服务器无网情况下: 第一步:在一台有网的Linux服务器上在线拉取镜像 命令:docker pull redis 第二步:导出镜像到本地 命令:docker save -o /home/redis.tar redis 导出的镜像在/home目录下 第三步:将镜像包移动到U盘并上传到无网服务器/home目录下,在无网服务器下执行拉取本地镜像命令 命令:docker load -i /home/redis.tar
二、创建持久化存储,日志,配置文件目录
2.1、创建存储目录,日志目录,配置文件目录
mkdir -p /data/redis/{conf,data,log}
2.2、创建日志文件
touch /data/redis/log/redis.log
2.3、修改配置文件
因为docker部署的redis并不自带redis.conf文件,需要自己下载
先切换目录,命令:cd /data/redis/conf/
在线下载命令:wget http://download.redis.io/redis-stable/redis.conf
下载之后根据情况修改配置即可
我是用的下面的配置
port 6379
tcp-backlog 511
#redis密码
requirepass lyh123456
# 设置主服务器密码(为以后redis集群做基础,无集群需求可以不添加)
# masterauth lyh123456
timeout 0
tcp-keepalive 300
# 关闭后台运行(避坑提示,因为docker运行就已经有后台守护,改为yes会启动不了redis)
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
# 设置日志文件路径(避坑提示,此路径为容器内的路径,切勿当成宿主路径)
logfile "/data/redis/log/redis.log"
databases 30
always-show-logo yes
################################ SNAPSHOTTING ################################
# 持久化保存策略配置
save 900 1
save 300 10
save 60 10000
# 配置如果持久化出错,Redis是否禁止写入命令 yes:禁止写入命令,no:允许写入命令(存在数据丢失风险)
stop-writes-on-bgsave-error yes
# 配置是否压缩rdb文件。[开启(yes)的话,会消耗一定的cpu资源]
rdbcompression yes
# 保存rdb文件的时候,进行错误的检查校验
rdbchecksum yes
# 默认持久化保存后的文件名
dbfilename "dump.rdb"
# rdb文件保存的目录(避坑提示,此路径为容器内的路径,切勿当成宿主路径)
dir "/data/redis/data"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
############################## APPEND ONLY MODE ###############################
# 是否开启aof持久化模式,默认值:no,不开启。redis的默认持久化策略是rdb模式
appendonly yes
# 持久化文件名称
appendfilename "appendonly.aof"
# 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no
no-appendfsync-on-rewrite no
# AOF自动重写配置,默认值为100
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# Redis在以AOF方式恢复数据时,对最后一条可能出问题的指令的处理方式,默认值yes
aof-load-truncated yes
# 当重写AOF文件时,Redis能够在AOF文件中使用RDB前导码,以便更快地重写和恢复,启用此选项时,重写的AOF文件由两个不同的节组成:[RDB file][AOF tail],当加载AOF文件时
,Redis通过以 “REDIS” 字符串开头的AOF文件识别出此文件是由RDB和AOF组合而成的,Redis会先加载RDB部分,然后再加载AOF部分,默认值yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
三、docker启动redis
执行命令
docker run --name redis --restart=always -p 6379:6379 -v /data/redis/conf/redis.conf:/data/redis/conf/redis.conf -v /data/redis/data:/data/redis/data -v /data/redis/log/redis.log:/data/redis/log/redis.log -d redis redis-server /data/redis/conf/redis.conf
查看日志文件
cat /data/redis/log/redis.log
显示如下即启动成功
云服务器外部访问的话记得放开安全组