在docker中:单机部署redis和MySQL ?
1、安装redis
###启动redis脚本
docker run -d --name redis-server \
--restart=always \
--network=host \
-p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
redis redis-server /etc/redis/redis.conf
###配置文件编写
vim /data/redis/conf/redis.conf
port 6379
appendonly yes
save ""
解释并发与QPS:
QPS(Queries Per Second)是指每秒查询率,即系统在一秒内能够处理的查询或请求次数。它是衡量系统性能的重要指标之一,用于评估服务器、数据库或应用程序在单位时间内处理请求的能力。
QPS与3000并发的关系
-
并发(Concurrency):指的是系统在同一时刻能够处理的请求数量。例如,3000并发意味着在某一时刻,有3000个请求同时在系统中被处理。
-
QPS与并发的关系:QPS和并发数之间存在一定的数学关系。根据Little's Law(利特尔定律),并发数等于QPS乘以平均响应时间(RT),即:
并发数=QPS×平均响应时间
例如,如果一个系统的QPS为1000,平均响应时间为50毫秒(0.05秒),那么并发数为:
1000×0.05=50
这意味着在该系统中,每秒有1000个请求,每个请求平均需要50毫秒处理,因此系统在同一时刻需要处理50个请求。
3000并发对应的QPS
如果一个系统有3000并发,假设平均响应时间为100毫秒(0.1秒),那么QPS可以通过以下公式计算:
QPS=平均响应时间并发数=0.13000=30000
这意味着在平均响应时间为100毫秒的情况下,系统需要达到30000 QPS才能支持3000并发。
QPS与并发的业务场景
- 高并发场景:在高并发场景下,QPS通常会很高。例如,电商网站在“双11”期间,QPS可能会达到数十万甚至上百万,这需要系统的并发处理能力极强。
- 实际应用:对于3000并发的系统,QPS可能在几千到几万之间,具体取决于系统的响应时间和业务逻辑复杂度。
总结
QPS是衡量系统每秒处理请求能力的指标,而并发数表示系统在同一时刻能够处理的请求数量。两者之间的关系可以通过平均响应时间来计算。3000并发的系统需要较高的QPS来支持,具体数值取决于平均响应时间。
2、安装MySQL
1、先启动
docker run -d --restart=always \
--network=host \
-e MYSQL_ROOT_PASSWORD=ipu123 \
--name mysql_server \
mysql:8.0.27
2、拷贝配置文件出来
#把文件拷贝出来
docker cp abc123(容器ID):/app/config.ini /data/config/
docker cp df957cc30f10:/etc/mysql/my.cnf /data/mysql/conf/
#拷贝文件到容器内部
docker cp /data/data.txt abc123(容器ID):/app/data/
3、创建目录授权目录
mkdir /data/mysql
mkdir /data/mysql/logs
mkdir /data/mysql/conf
mkdir /data/mysql/data
chown -R 999:999 /data/mysql
4、编写配置文件
root@ipu:/data/mysql/conf# cat my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# 设置最大连接数
max_connections = 500
# 启用二进制日志并设置相关参数
log-bin = /var/log/mysql/mysql-bin.log
binlog-format = ROW
expire_logs_days= 7
sync_binlog = 1
# Custom config should go here
!includedir /etc/mysql/conf.d/
###再次授权
chown -R 999:999 /data/mysql
5、run启动MySQL
docker run -d --restart=always \
--network=host \
-v /data/mysql/data:/var/lib/mysql \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/mysql/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=ipu123 \
--name mysql_server \
mysql:8.0.27
注意:host使用宿主机的网络、不需要-p暴漏端口。

浙公网安备 33010602011771号