在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暴漏端口。
posted @ 2025-04-07 19:15  姬高波  阅读(16)  评论(0)    收藏  举报