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

显示如下即启动成功

 

云服务器外部访问的话记得放开安全组

posted @ 2024-04-15 11:00  Arbitrary233  阅读(2891)  评论(0编辑  收藏  举报