4.使用docker安装redis
1.拉去redis
[root@wmd01 bin]# docker pull redis
2.创建文件夹:
mkdir -p /usr/local/docker/redis/config
将自己的redis.conf文件放入(此处必须放入自己的redis.conf文件,并且必须是提前放入)
3.启动redis
docker run -p 6379:6379 --name redis -v /usr/local/docker/redis/config/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令解释:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name myredis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/config/redis.conf
appendonly yes 开启redis 持久化
5.docker重启redis服务
[root@wmd01 jdk]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd8a28bf1a1c redis "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6379->6379/tcp redis
[root@wmd01 jdk]# docker restart cd8a28bf1a1c
6.如何验证dokcer启动的redis可用呢
1.进入交互;
[root@wmd01 jdk]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd8a28bf1a1c redis "docker-entrypoint.s…" 20 minutes ago Up 3 minutes 0.0.0.0:6379->6379/tcp redis
[root@wmd01 jdk]# docker exec cd8a28bf1a1c -it /bin/bash
2.执行命令:
root@cd8a28bf1a1c:/bin# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name wmd
OK
127.0.0.1:6379> get name
"wmd"
127.0.0.1:6379> keys *
1) "name"
7.如何查看启动的redis用的是哪个redis.conf文件呢
[root@wmd01 config]# docker ps(查看运行的id号)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3d8c6065884 redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp redis
[root@wmd01 config]# docker exec -it e3d8c6065884 /bin/bash(进入交互)
root@e3d8c6065884:/data# redis-cli info |grep config(执行该命令)
configured_hz:10
config_file:/etc/redis/redis.conf(返回的是使用的配置文件在容器中的路径)
8.如何用命令获取配置文件中的值(检查配置文件是否生效)(config get key)
1.更改为配置需要重启下reids:docker restart 对应的id号
127.0.0.1:6379> config get save
1) "save"
2) "60 5"
127.0.0.1:6379> config get bind
1) "bind"
2) "127.0.0.1"
127.0.0.1:6379> config get dir
1) "dir"
2) "/data/rdb"
2.当然也可以使用命令设置redis的配项(在redis运行期间有效)
127.0.0.1:6379> config set dir "/data/rdb"
OK
127.0.0.1:6379> config get dir
1) "dir"
2) "/data/rdb"
redis的性能测试
1.还是以docker启动的redis为例
命令如下:进入交互后:创建100个并发客户端,总共发送100000个请求
root@cd8a28bf1a1c:/# redis-benchmark -h localhost -p 6379 -c 100 -n 100000
返回如下
序号
|
选项
|
描述
|
默认值
|
1
|
-h
|
指定服务器主机名
|
127.0.0.1
|
2
|
-p
|
指定服务器端口
|
6379
|
3
|
-s
|
指定服务器 socket
|
|
4
|
-c
|
指定并发连接数
|
50
|
5
|
-n
|
指定请求数
|
10000
|
6
|
-d
|
以字节的形式指定 SET/GET 值的数据大小
|
2
|
7
|
-k
|
1=keep alive 0=reconnect
|
1
|
8
|
-r
|
SET/GET/INCR 使用随机 key, SADD 使用随机值
|
|
9
|
-P
|
通过管道传输 <numreq> 请求
|
1
|
10
|
-q
|
强制退出 redis。仅显示 query/sec 值
|
|
11
|
--csv
|
以 CSV 格式输出
|
|
12
|
-l
|
生成循环,永久执行测试
|
|
13
|
-t
|
仅运行以逗号分隔的测试命令列表。
|
|
14
|
-I
|
Idle 模式。仅打开 N 个 idle 连接并等待。
|