_3主3从的`Redis集群`搭建(下)
_3主3从的Redis集群搭建(下)
进入主机6381
+ })(window)_3主3从的`Redis集群`搭建(下)
_3主3从的Redis集群搭建(下)
进入主机6381
redis-cli -p 6381
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
diff --git "a/2022/08/26/docker/2022-08-25-_3\344\270\2733\344\273\216\347\232\204Redis\351\233\206\347\276\244\346\220\255\345\273\272(\344\270\213)/index.html" "b/2022/08/26/docker/2022-08-25-_3\344\270\2733\344\273\216\347\232\204Redis\351\233\206\347\276\244\346\220\255\345\273\272(\344\270\213)/index.html" index 0a82dbc31..15c5ab977 100644 --- "a/2022/08/26/docker/2022-08-25-_3\344\270\2733\344\273\216\347\232\204Redis\351\233\206\347\276\244\346\220\255\345\273\272(\344\270\213)/index.html" +++ "b/2022/08/26/docker/2022-08-25-_3\344\270\2733\344\273\216\347\232\204Redis\351\233\206\347\276\244\346\220\255\345\273\272(\344\270\213)/index.html" @@ -5,13 +5,13 @@ - + -
+ })(window)_3主3从的`Redis集群`搭建(下)
_3主3从的Redis集群搭建(下)
进入主机6381
redis-cli -p 6381
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
Redis集群
搭建之哈希槽算法解决一致性哈希算法
数据倾斜问题
Redis集群
搭建之哈希槽算法解决一致性哈希算法
数据倾斜问题
是一个数组,数组[0,2^14-1]形成hash slot空间
解决均匀分配问题,在数据和节点之间加入一层(哈希槽slot)用于管理数据和节点之间的关系,现在相当于节点里放槽,槽里放数据
Redis集群
搭建(上)Redis集群
搭建(上)docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
+ })(window)_dockerfile
_dockerfile
以dockerfile的方法来进行对centos的具有vim,ifconfig和jdk8的镜像
创建myfile文件夹
创建Dockerfile文件
注意:
jdk8
需要和Dockerfile
放到同一个文件夹@@ -174,7 +174,7 @@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 FROM centos:7
MAINTAINER zzyy<zzyybs@126.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
安装vim编辑器
RUN yum -y install vim
安装ifconfig命令查看网络IP
RUN yum -y install net-tools
安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!
新建主服务器容器实例3307
+ })(window)新建主服务器容器实例3307
1 | docker run -p 3307:3306 --name mysql-master -v /mydata/mysql-master/log/:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 |
进入/mydata/mysql-master/conf
目录下新建my.cnf
把下面内容粘贴到my.cnf
1 | [mysqld] |
主从复制测试
主机创建数据库,创建表,插入数据,搜索表的数据
从机直接搜索标的数据
-+ })(window)_主从容错切换迁移
_主从容错切换迁移
进入redis集群
注意:进入集群环境后,不能使用单机版的
redis-cli -p 6381
因为这样会在增加数据时有
@@ -197,7 +197,7 @@error
报错出现主从容错切换迁移
-主机宕机,从机自动切换成主机
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
启动docker
+ })(window)启动docker
@@ -178,7 +178,7 @@systemctl start docker
-systemctl restart docker
docker 开机启动
+ })(window)docker 开机启动
@@ -176,7 +176,7 @@systemctl enable docker
docker —help
1 | [root@iZ8vbfaek3x3ogtpxnpnwfZ /]# docker --help |
+ })(window)docker 镜像(一)
镜像(一)
查询本地主机上的镜像
docker images
OPTIONS说明:
@@ -191,7 +191,7 @@
docker pull 镜像名称:标签版本号
没有tag就是最新版
-
1
2
3
4
5
6
7
8
9
10
11
12
13 [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker pull redis:6.0.8
6.0.8: Pulling from library/redis
bb79b6b2107f: Pull complete
1ed3521a5dcb: Pull complete
5999b99cee8f: Pull complete
3f806f5245c9: Pull complete
f8a4497572b2: Pull complete
eafe3b6b8d06: Pull complete
Digest: sha256:21db12e5ab3cc343e9376d655e8eabbdbe5516801373e95a8a9e66010c5b8819
Status: Downloaded newer image for redis:6.0.8
docker.io/library/redis:6.0.8
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
+ })(window)docker 镜像(二)
镜像(二)
查看 镜像/容器/数据 卷所占的空间
docker system df
@@ -181,7 +181,7 @@
1
2
3
4
5
6
7
8 [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 6 3 1.173GB 921.1MB (78%)
Containers 6 0 4.517MB 4.517MB (100%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#使用 -f 删除全部
-docker rmi -f $(docker images -qa)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
+ })(window)redis的4主4从缩容
redis的4主4从缩容
目的:6387和6388下线
检查集群情况获得6388的节点ID
redis-cli —cluster check 8.142.144.75:6382
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
使用docker pull mysql:5.7
拉取mysql 5.7镜像
使用docker pull mysql:5.7
拉取mysql 5.7镜像
使用docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
运行镜像创建容器
因为linux系统自己装了mysql,避免端口冲突,先运行ps -ef|grep mysql查询
@@ -187,7 +187,7 @@工作使用版启动容器方法
-
1
2
3
4
5
6
7 docker run -d -p 3306:3306 --privileged=true
-v /ggls/mysql/log:/var/log/mysql
-v /ggls/mysql/data:/var/lib/mysql
-v /ggls/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name mysql
mysql:5.7
使用docker pull redis:6.0.8
拉取redis:6.0.8镜像
使用docker pull redis:6.0.8
拉取redis:6.0.8镜像
创建容器
容器卷要加入
--privileged=true
在宿主机下新建目录mkdir -p /app/redis
首先把tomcat在镜像源中pull
下来,使用docker images
查看镜像
首先把tomcat在镜像源中pull
下来,使用docker images
查看镜像
使用docker run -d -p 8080:8080 tomcat:9.0
新建容器运行tomcat
-运行后使用本地PC使用阿里云的ip和端口访问docker上面的
@@ -190,7 +190,7 @@tomcat
docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 —name tomcat8 billygoo/tomcat8-jdk8
1 | docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名 |
1 | docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名 |
@@ -190,7 +190,7 @@宿主vs容器之间映射添加容器卷
1 | docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu |
1 | [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker run -it ubuntu bash |
(问题):使用docker run -d ubuntu命令启动后台模式的容器ubuntu,然后用docker ps 查询提示没有找到运行的容器
+ })(window)(问题):使用docker run -d ubuntu命令启动后台模式的容器ubuntu,然后用docker ps 查询提示没有找到运行的容器
@@ -207,7 +207,7 @@Docker容器后台运行就必须有一个前台进程,不然容器没事做,会自杀
1 | [root@iZ8vbfaek3x3ogtpxnpnwfZ opt]# docker ps |
1 | [root@iZ8vbfaek3x3ogtpxnpnwfZ opt]# docker ps |
+ })(window)容器(二)
容器(二)
启动已经停止运行的容器
docker start 容器id/容器名
@@ -183,7 +183,7 @@
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
562278524cda ubuntu "bash" 4 minutes ago Up 4 minutes loving_dewdney
9a1a43aee837 ubuntu "bush" 4 minutes ago Created admiring_wiles
cdee90a8c77d ubuntu "bash" 29 minutes ago Exited (0) 29 minutes ago ubuntu
0dcaa91afc0e ubuntu "/bin/bush" 31 minutes ago Created myubuntu
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
562278524cda ubuntu "bash" 4 minutes ago Up 4 minutes loving_dewdney
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker start cdee90a8c77d
cdee90a8c77d
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
562278524cda ubuntu "bash" 5 minutes ago Up 5 minutes loving_dewdney
cdee90a8c77d ubuntu "bash" 30 minutes ago Up 3 seconds ubuntu
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#docker ps -a -q | xargs docker rm
注:xargs是linux系统的可变参数,把分隔符前面的结果传给xargs里面,然后执行分隔符后面的命令
-
1
2
3
4
5
6
7
8
9
10
11 [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
562278524cda ubuntu "bash" 20 minutes ago Up 20 minutes loving_dewdney
cdee90a8c77d ubuntu "bash" 45 minutes ago Up 15 minutes ubuntu
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps -a -q | xargs docker rm -f
562278524cda
cdee90a8c77d
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
+ })(window)本地镜像发布到私有库
本地镜像发布到私有库
步骤
@@ -214,7 +214,7 @@
pull
到本地并运行-
1 docker pull 8.142.144.75:5000/ubuntu:1.6本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
使用docker进行对docker镜像功能的新增后,需要发布到阿里云上对镜像进行同步,下次pull
镜像就不要pull
缩减版的镜像,直接pull
更新后的镜像,方便后续使用
docker镜像是最小的,被精简过的Linux系统,是不带vim命令的
+ })(window)docker镜像是最小的,被精简过的Linux系统,是不带vim命令的
@@ -184,7 +184,7 @@使用命令 ‘vim a.txt’ 进行新建编辑a.txt文件,就会提示找不到命令
1 | [root@iZ8vbfaek3x3ogtpxnpnwfZ /]# docker ps |
运行录制的代码,在查看结果树上查看运行的结果
-1 | #字符串 |
1 | #字符串 |
回显的结果是:
1 | { username: 'admin', |
1 | forceStr: !!str 123 |
1 | #引用 |
回显的结果是:
1 | father: { lastName: '周' }, |
接口响应时间
+ })(window)接口响应时间
吞吐量
TPS: 事务处理能力,每秒处理事务数(打开页面、登录、选择商品、加入购物车、下单、付款)
注意:“日活” 每日活跃用户数,是运营数据,与性能无关
@@ -175,7 +175,7 @@在linux创建helloworld.sh
文件,在文件内输入:
在linux创建helloworld.sh
文件,在文件内输入:
1 | !/bin/bash |
然后保存该文件
运行.sh
文件时,有两种方法可以运行
1 | ./helloworld.sh |
bash或sh 文件路径
运行该文件1 | bash helloworld.sh |
$HOME
获取当前用户的家目录
$HOME
获取当前用户的家目录
$PWD
获取当前目录的路径
$SHELL
获取shell的执行引擎
$USER
获取当前用户的名称
举个栗子
1 | [root@b09ed0cc2c9d opt]# $? |
首先创建test_shell.sh
文件
首先创建test_shell.sh
文件
1 | touch test_shell.sh |
在test_shell.sh
文件输入shell脚本
1 | !/bin/bash |
在config目录下创建environment.yaml文件
+ })(window)在config目录下创建environment.yaml文件
1 | username: 周杰伦 |
首先创建yaml_config
文件,为了方便自动化后面的引用,需要创建一个类,在__init__
里面打开yaml文件,使用yaml.load(文件名称, Loader=yaml.FullLoader )
方法获取数据
打印出字典格式的数据{'username': '周杰伦', 'password': 123456}
1 | def sep(path, add_sep_before=False, add_sep_after=False): |
1 | class GetConf: |
1 | basename [string/ pathname][文件后缀] |
1 | basename [string/ pathname][文件后缀] |
basename命令会删掉所有的前缀,只留一个文件名
选项:
如果指定后缀,basename会将pathname或string中的文件后缀去掉
@@ -173,7 +173,7 @@1 | [root@b09ed0cc2c9d opt]# dirname /opt/banzhang.txt |
1 | [function] funname[()] |
1 | !/bin/bash |
+ })(window)Shell工具(一)
Cut工具
用于剪切数据
基本用法
cut[选项参数] filename
@@ -257,7 +257,7 @@-
1
2
3
4
5
6
7 [root@b09ed0cc2c9d opt]# sed -e "2d" -e "s/wo/ni/g" sed.txt
dong shen
ni ni
lai lai
le le
[root@b09ed0cc2c9d opt]#本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中
[ condition ] (注意,condition 前后要有空格)
+ })(window)[ condition ] (注意,condition 前后要有空格)
注意:条件非空即为 true,[ atguigu ]返回 true, [] 返回 false.
1 | = 字符串比较 |
举个栗子
@@ -175,7 +175,7 @@1 | [ -e 2.sh ] |
$$$$ 与 ,前对,才执行后
||
或
1 | expr `expr 2 + 3` \* 4 |
或者
1 | s=$[(2+3)*4] |
+ })(window)Shell工具(二)
awk工具
强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。
awk [选项参数] ‘pattern1{action1}’ filename
@@ -265,7 +265,7 @@
参数是
-指定待排序文件列表
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!
+ })(window)使用Postman如何做接口测试
Postman安装
Postman下载:https://www.postman.com/downloads/
@@ -238,7 +238,7 @@
下载后双击即可安装,安装后需要创建账号,登录后可以在不同平台同步数据。关
生成并导出接口脚本
导出接口测试脚本
导出测试集
导入测试集
-本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Research • 呓语!数据库加载中