拉取 Redis 镜像
docker search redis
拉取 Redis
docker pull redis
查看拉取结果
docker images -a
创建REDIS容器
查看redis镜像详情
docker inspect redis
找到redis版本
docker inspect redis --format='{{json .Config.Env}}'
#查看 REDIS_VERSION
REDIS_VERSION:
["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.16","REDIS_VERSION=7.2.2","REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-7.2.2.tar.gz","REDIS_DOWNLOAD_SHA=ca999be08800edc6d265379c4c7aafad92f0ee400692e4e2d69829ab4b4c3d08"]
创建redis配置文件
如果:raw.githubusercontent.com无法访问可修改hosts文件
创建目录结构如下:
官网下载文件写入redis配置文件,cat命令查看文件内容:
修改配置文件
部份配置参数说明:
bind 127.0.0.1 #redis绑定ip
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no
databases 16 #数据库个数(可选)
requirepass 123 #密码
dir /data/ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化 默认 no(可选)
创建容器
docker run -it \
--name redis \
--privileged \
-p 6379:6379 \
-v ~/data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v ~/data/redis/data/:/data \
-v ~/data/redis/log/redis.log:/var/log/redis.log \
-d redis \
/usr/local/etc/redis/redis.conf
#启动命令参数解释
…
–name redis # 别名
-p 6379:6379 # 宿主机和容器端口映射
–privileged=true # 挂载容器卷目录权限
-v ~/data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf #[宿主机配置文件]:[容器配置文件]
-v ~/data/redis/data/:/data #[宿主机数据存储位置]:[容器数据存储位置]
-v ~/data/redis/log/redis.log:/var/log/redis.log #[宿主机日志存储位置]:[容器日志存储位置]
-d redis #后台运行指定容器,并返回容器ID
/usr/local/etc/redis/redis.conf #绝对路径指定redis-server 以指定配置文件启动redis服
…
设置docker启动时启动redis
docker update redis --restart=always
查看自启动状态
docker inspect redis --format='{{json .HostConfig.RestartPolicy}}'
进入redis
docker exec -it redis /bin/bash
连接redis
redis-cli -a 123456
命令格式:
redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1). ip地址
-p <port> Server port (default: 6379). 服务器端口号
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server. 密码
-u <uri> Server URI. url格式的地址
-r <repeat> Execute specified command N times.
-i <interval> When -r is used, waits <interval> seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n <db> Database number. 指定数据库
-x Read last argument from STDIN.
-d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n).
-c Enable cluster mode (follow -ASK and -MOVED redirections).
--raw Use raw formatting for replies (default when STDOUT is
not a tty).
--no-raw Force formatted output even when STDOUT is not a tty.
--csv Output in CSV format.
--stat Print rolling stats about server: mem, clients, ... 统计数据 连续输出
--latency Enter a special mode continuously sampling latency.
If you use this mode in an interactive session it runs
forever displaying real-time stats. Otherwise if --raw or
--csv is specified, or if you redirect the output to a non
TTY, it samples the latency for 1 second (you can use
-i to change the interval), then produces a single output
and exits. 延时统计
--latency-history Like --latency but tracking latency changes over time.
Default time interval is 15 sec. Change it using -i.
--latency-dist Shows latency as a spectrum, requires xterm 256 colors.
Default time interval is 1 sec. Change it using -i.
--lru-test <keys> Simulate a cache workload with an 80-20 distribution.
--replica Simulate a replica showing commands received from the master.
--rdb <filename> Transfer an RDB dump from remote server to local file. 导出rdb文件
--pipe Transfer raw Redis protocol from stdin to server.
管道模式
--pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
no reply is received within <n> seconds.
Default timeout: 30. Use 0 to wait forever.
管道超时
--bigkeys Sample Redis keys looking for big keys.
--hotkeys Sample Redis keys looking for hot keys.
only works when maxmemory-policy is *lfu.
--scan List all keys using the SCAN command.获取服务器所有的键
--pattern <pat> Useful with --scan to specify a SCAN pattern.
正则表达式 用于scan命令中
--intrinsic-latency <sec> Run a test to measure intrinsic system latency.
The test will run for the specified amount of seconds.
--eval <file> Send an EVAL command using the Lua script at <file>.
--ldb Used with --eval enable the Redis Lua debugger.
--ldb-sync-mode Like --ldb but uses the synchronous Lua debugger, in
this mode the server is blocked and script changes are
not rolled back from the server memory.
--cluster <command> [args...] [opts...]
Cluster Manager command and arguments (see below).
--verbose Verbose mode.
--no-auth-warning Don't show warning message when using password on command
line interface.