一、建立镜像
1.搜寻相关镜像
#查询mysql相关镜像
docker search redis
2.拉取镜像
#拉取指定版本redis镜像
docker pull redis:版本号
#拉取最新版本redis镜像
docker pull redis
3.检查是否拉取成功
docker images
4.准备Redis的配置文件
因为需要Redis配置文件,最好是去官网去下载一个Redis使用里面的配置文件即可:
Redis中文官方网站
5.配置redis.conf配置文件
修改redis.conf
配置文件:
bind 127.0.0.1
#注释掉这部分,使redis可以外部访问
daemonize no
#用守护线程方式启动
requirepass 你的密码
#设置redis密码
appendonly yes
#redis持久化 默no
tcp-keepalive 300
#防止出现远程主机强迫关闭了一个现有的连接的错误 默认300
6.创建挂载文件目录
创建本地存放redis的位置,位置可以自定义,比如:
sudo mkdir /data/redis
sudo mkdir /data/redis/data
或者
sudo mkdir -p /data/redis/data
把配置文件拷贝到创建的文件里
sudo cp -p redis.conf /data/redis/
7.启动docker redis
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --restart=always --appendonly yes
参数解释:
-p
:把容器内6379端口映射到宿主机6370端口
-v
:挂载命令 将容器中的配置挂载在外部来方便修改:前为主机目录,后为容器目录
redis-server /etc/redis/redis.conf
:这个是关键配置,让Redis不是无配置启动,而是按照这个redis.conf的配置启动
--appendonly
:reids数据持久化配置
8.查看是否启动成功
docker ps
#可以查看日志
docker logs redis
redis配置文件
#默认情况bind=127.0.0.1只能接受本机的访问请求
#不写的情况下,无限制接受任何ip地址的访问
# bind 127.0.0.1 ::1
#如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的响应
protected-mode no
#端口号
port 6379
#TCP连接队列
tcp-backlog 511
#登录密码
requirepass 123456
#一个空闲的客户端维持多少秒会关闭,0表示关闭该功能。即永不关闭
timeout 0
#对访问客户端的一种心跳检测,每个n秒检测一次,单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60
tcp-keepalive 300
#是否为后台进程,设置为yes,守护进程,后台启动
daemonize no
supervised no
#存放pid文件的位置,每个实例会产生一个不同的pid文件
pidfile /var/run/redis_6379.pid
#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为notice
loglevel notice
#日志文件名称
logfile ""
#设定库的数量 默认16,默认数据库为0,
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
#配置存储至本地数据库时是否压缩数据,默认为yes。Redis采用LZF压缩方式,但占用了一点CPU的时间。若关闭该选项,
但会导致数据库文件变的巨大。建议开启
stop-writes-on-bgsave-error yes
#配置存储至本地数据库时是否压缩数据,默认为yes。Redis采用LZF压缩方式,但占用了一点CPU的时间。若关闭该选项,但会导致数据库文件变的巨大。建议开启
rdbcompression yes
#是否校验rdb文件;从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验和。这跟有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,所以如果你追求高性能,可以关闭该配置
rdbchecksum yes
#指定本地数据库文件名,一般采用默认的 dump.rdb
dbfilename dump.rdb
#数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目
dir ./
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
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated 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
网友评论