- 博客(68)
- 收藏
- 关注

原创 pycharm解决:kex_exchange_identification: read: Connection reset by peer
我在网上查阅到了一个更改本机防火墙端口号的方法,我尝试修改后,但是没有成功!我先把网上的解决方案贴在下方,友友们如果尝试了我的方法不行,可以尝试一下这个方法:https://www.dianjilingqu.com/394069.html或者尝试重新对git重新进行一次配置,网上有人说这个有用,但是我尝试了均无效,配置方法就不多做赘述!这个问题困扰我很久,网上说的方法我尝试了一部分,上面的方法我实操可行,希望可以帮助到各位帅比。好了,废话不多说,在经历过多次折磨之后,我终于摸索出了两个亲测有效的解决方案!
2023-03-07 00:05:11
1163
原创 Redis学习笔记
在运行过程中,同时记录 RDB 快照和 AOF 日志,当 AOF 日志过大时,会自动触发 AOF 重写,并将重写后的 AOF 文件作为新的数据恢复源。在事务执行期间,不会主动中断,服务器会在执行完事务中的所有命令之后,才会继续处理其他客户端的命令请求。:Redis主从复制是指将一台Redis服务器(主节点)的数据,复制到一个或多个不同Redis服务器(从节点)。:在事务中,按照需要执行一系列的 Redis 命令,包括数据的修改、删除等操作,这些命令将被缓存到事务队列中,但不会立即执行。
2025-01-22 17:35:39
941
原创 mongDB学习笔记
插入多条数据:db.car_info.insertMany([{“number”:“川G123456”,“type”:“小轿车”,“driver_id”:“002”},{“number”:“川G00000”,“type”:“小轿车”,“driver_id”:“003”}]) 需要注意的是,插入多条数据时,被插入内容是存放于一个数组中。插入单条数据:db.car_info.insert({“number”:“川G123456”,“type”:“小轿车”,“driver_id”:“002”})
2025-01-16 16:33:28
811
原创 MySQL基础之锁
共享锁:允许多个事务同时读取数据,是数据库管理系统实现并发控制的一种机制,但是数据被读取期间,事务不能对数据进行修改,这种锁通常用于实现事务的可重复读(repeatable read)隔离级别。在这个级别上,事务会对读取的所有行加上锁,无论是共享锁还是排他锁,并且会使用范围锁来保护一系列值不被其他事务修改。锁分为全局锁、表级锁、行级锁。在当前事务创建一个排他锁之后,当前事务仍具有该表的增删改查权限,其它事务将无法对该表进行增删改查操作,必须等待当前事务完成并且锁被释放,其它事务才能对该表进行增删改查。
2024-03-19 09:37:52
1593
原创 mysql基础之事务
可以通过模拟正常事务处理、并发事务处理以及异常情况下的事务处理场景,使用数据库管理系统的并发控制管理器来对并发执行的事务进行基本读写操作的顺序控制,以确保在某个隔离级别下,并发执行事务的正确性。【幻读】:同一事务执行多次相同的查询,由于其它事务插入或者删除了满足当前事务查询条件的数据,导致后续的查询结果出现了之前结果中未出现的数据。(查询结果条数不变,但是内容不一致)【读未提交(read uncommitted)】:事务最低级的隔离级别,允许读取尚未提交的数据,可能会导致脏读、幻读、不可重复读。
2024-03-14 17:09:48
456
原创 MySql数据库索引相关知识
mysql主要支持两种类型的索引**B+tree(B+tree是一种多路搜索树,每个节点包含关键字以及指向节点的指针)、hash表(hash表索引则是通过哈希函数将键值映射到数组索引上,从而实现查找)**索引。二级索引被称为非聚集索引或辅助索引,二级索引的叶子节点存储的是主键而不是数据。给表的多个字段创建索引,必须遵循“最左前缀匹配”原则(即对应的sql要命中这个索引,对应的查询条件需要与组合索引的字段顺序保持一致,可以不是完全匹配,但是第一个条件需要与第一个索引字段匹配,不然会无法命中索引)。
2024-03-13 16:43:38
996
原创 Linux完成mysql数据库的备份与恢复
mysql -uxxx -pxxxx -h 127.0.0.1 (-u:后紧跟登录数据库的用户名,-p紧跟密码,-h :数据库对应服务器的ip,注意-u 、-p 后的内容不能有空格)如果想要切换数据库,执行命令:use database_name即可,切换之后,就可以在命令行对数据库进行操作。注意:该命令直接在机器的命令行执行即可,无需进入数据库中,如果进入数据库执行会抛出异常。恢复备份数据前,需要将原本的库备份一次,避免导入的mysqldump文件数据覆盖后,无法在恢复成最初的数据库。
2023-12-14 10:52:29
286
原创 Linux免密实现文件拷贝(建立机器之间的SSH密钥认证)
其中username是值远程机器的可登录账户,remote:通常为远程机器的ip地址,/loacal_path/to/file是本地机器存放远程文件的相对路径,/path/to/file为远程机器人被拷贝文件的相对路径。其中/loacal_path/to/file是本地机器将要被拷贝文件的相对路径,username是值远程机器的可登录账户,remote:通常为远程机器的ip地址。在之前的工作中,我需要在我的shell脚本中实现将机器A的文件拷贝至机器B,然后去执行一系列的操作。
2023-12-13 10:54:17
394
原创 Jmeter性能测试入门之常用组件
设置的吞吐量将会分配到每个活动线程上面(活动线程:正在执行测试任务的线程,如果目标吞吐量设置为100,此时有2个线程组,那么每个线程组的样本数量理论上为60)-如果需要控制多个线程组的吞吐量,需要将该定时器置于测试计划下,与线程组平级。:意思是生成一个父样本。不同控制器设置的执行数量(比例)之和,可以大于线程组设置的线程数量,执行结果会按照设置数量(比例)执行。如:我现在的线程循环次数为2,处于仅一次控制器中的取样器就执行了一次,未受到循环次数的影响,不在仅一次控制器的取样器,就随线程的循环次数执行。
2023-10-31 14:50:11
1494
原创 简述TCP三次握手,四次挥手
客户端在收到服务端发送的SYN/ACK(同步/确认序列编号)标致的数据包后,会发送一个带有ACK(确认序列编号)标志的数据包给服务器,表示客户端接受连接。ACK标志为1,表示确认收到了客户端发送的FIN包,FIN为1,表示不再发送数据,ack为确认号,为客户端发送的FIN包的初始序列号+1。ACK包中seq,表示接收方当前发送数据的最后一个字节的序列号,ACK标志为1,表示确认收到了客户端发送的FIN包,ack表示确认号,具体值为FIN包的初始序列号+1。,表示客户端期望从该序列号发送数据;
2023-09-19 17:23:23
578
原创 性能测试基础知识
关注的是在给定时间段内系统处理的总体性能。如单位时间内完成的事务数(tps)、请求数(req/s)或者数据传输数量(MB/s、GB/s)等。并发测试:测试系统在处理并发请求或并发用户时的性能表现和稳定性。主要是测试系统、应用程序或者组件在特定的场景下的性能表现以及稳定情况。程序在特定场景下运行时的表现是否满足既定的性能需求或者用户的期望。关注系统在异常或极端负载下的响应时间、错误率、系统崩溃等。吞吐量:在性能测试阶段通过系统、网络或设备传输的数据量或完成的任务数量。的响应时间、吞吐量和资源消耗等。
2023-09-06 16:26:43
225
原创 进程和线程的区别
进程:进程是计算机中运行程序的实例。不同进程之间相互独立,彼此不能直接访问对方的内存。进程之间的通信需要通过操作系统提供的特定机制,如管道、共享内存等。线程:线程是进程中执行的实体。一个进程可以包含多个线程,它们共享进程的内存和系统资源。通信方式:进程之间通信需要操作系统提供特定的机制如共享内存、管道等。执行能力:进行是独立的执行单位,可以独立执行任务。线程是进程中的实体,共享进程的上下文,多个线程可以并发执行。资源开销:每个进程都有独立的内存和系统资源,而线程共享进程的内存和资源。
2023-09-01 15:45:34
371
原创 简述docker的网络模式
docker容器启动时默认就是该模式,在该模式下,docker容器会连接到一个名为docker0的虚拟以太网桥上,通过NAT(网络地址转发)实现与宿主机网络的通信。如果容器内部的程序需要对网络端口进行监听,那么在该模式下,容器内程序监听的网络端口不能与宿主机其他进程的端口冲突。在该模式下,容器能直接连接到物理网络,,并获得与物理主机上的网络接口类似的功能。在该模式下,允许多个docker主机上的容器在一个逻辑网络中通信,该模式下容器具有了跨主机通信的能力。
2023-08-23 09:47:47
627
原创 简述docker映射(Mapping)和挂载(Mounting)
这里提到的容器内部的端口并不一定是dockerfile中EXPOSE指定的端口号,容器内部的端口号通常是指容器内部程序运行时指定的端口号)资源共享:文件共享(挂载目录或者的文件读写实时同步)、硬件设备共享(容器可以使用宿主机的usb、摄像头等)、网络设备共享(容器可以通过网络访问宿主机上的网络接口、访问外部网络或与其他容器进行网络通信)、环境变量共享等。表示我已经成功挂载。数据共享:重新创建容器时,再次指定该目录或者文件为容器的挂载目录或者文件时,新的容器仍可以继续访问之前容器的数据。
2023-08-22 11:55:48
2074
原创 docker容器管理
p :指定容器的端口映射,端口1指外界可访问的端口号,端口2指容器内部项目对应的端口号(注意!-it:是一个组合参数,-i表示保持标准输入,确保与容器终端能正常交互;–name :是启动容器时,给容器定义的名称,不使用该参数时,容器启动成功之后,会生成随机名称。docker exec -it 容器名 or 容器ID command。docker run --name 容器名 -d -p 端口1:端口2。docker logs -f 容器名 or 容器ID。docker ps -a:列出所有容器。
2023-08-15 11:48:26
326
原创 docker镜像管理
要将容器中的镜像上传至阿里云指定的容器仓库中,需要先执行以下命令:docker tag 镜像名:TAG 阿里云仓库url:镜像tag,该命令的作用是将本地的镜像打上与阿里云相关的标签(需要注意的点是在写最后一个tag时,不需要写对应镜像的名称,只需要写tag)在容器中,执行命令:docker login --username=用户名 registry.cn-hangzhou.aliyuncs.com,即可进入密码键入命令行,输入正确的密码之后,就能成功登录阿里云的仓库。
2023-08-15 10:01:38
455
原创 如何在docker部署一个python项目
1.设置全局镜像加速,我们上面的示例是的加速源,是针对某一个容器的,如果其他容器想要加速,则每次都需要在dockerfile中设置加速源。2.dockerfile文件的命名不用强制为dockerfile,如果使用其他名称时,构建镜像时,需要使用-f 参数指定对应dockerfile文件的路径以及名称,用于构建镜像。. :表示构建的路径,代表的是当前目录,即构建镜像时,会在当前目录找到dockerfile文件,会根据dockerfile文件的配置构建镜像。
2023-08-11 14:21:09
1071
原创 docker简介和安装
快速部署和拓展:docker可以将应用程序的依赖和程序本身与镜像一起打包,镜像又是在容器中运行,docker只需要一行命令就可以将容器启动,对应的程序便可以在容器中运行。虚拟机:每个虚拟机都需要自己的内核、操作系统,因此会占用较多的内存和存储空间,并且虚拟机运行时,是运行一个完整的系统,因此会在性能和运行效率存在一定的开销。是在独立的空间(容器)中去运行相应的程序,容器间相互隔离,不受影响。1.docker在启动时,只需要启动容器内部的进程,虚拟机在启动时,需要启动完整的操作系统,然后在去运行对应的程序。
2023-08-08 17:30:43
607
原创 使用Python+Flask+HTML写一个测试小工具
由于公司安全规范限制,我司的测试、预发布、灰度、生产环境,接口间的数据通信通常是加密处理的,给我们日常定位缺陷带来了一定的阻碍,因此我决定使用Python写一个工具,将加密数据转换为正常数据,便于日常问题定位。根据数据间的加解密规则可以看出,安全规则的加密规范是rsa+aes混合加密,其中aes是对称加密,rsa是非对称加密。对称加密简单的来说是可以通过一个密钥完成数据的加解密,非对称加密是使用公钥加密,私钥解密。由于是第一次写页面化的测试工具,我将把自己的思路做完整的记录,便于日后回归以及套用。
2023-06-26 16:31:15
2098
1
原创 pytest:灵活替换用例中的变量
这几天在调试之前搭建的pytest框架时,发现原框架对case中的变量进行动态替换的代码不够完美,原代码逻辑会造成代码中会出现大量的if语句,让代码量增加不少,并且后期维护也不方便:case只要新增了一个变量,就需要在通过if语句进行判断,从而实现变量替换。基于我们目前的流程图,我们需要解决的问题是:当需要赋值的变量不是环境变量时,我们需要通过代码将其设置为环境变量,并且去获取到它的值。从上面流程图来看,最初的实现逻辑是将需要替换的变量分为了需要脚本生成和已经存在的变量来区分的。
2023-05-30 22:53:19
731
原创 windowns环境:pycharm+gitee+jenkins配置:实现项目自动构建,自动部署
jenkins获取项目代码,自动构建,并输出构建结果
2023-03-26 17:51:59
690
原创 解决PytestUnknownMarkWarning: Unknown pytest.mark.pre - is this a typo?
在pytest框架中,执行标记的用例时,出现了如下提示:PytestUnknownMarkWarning: Unknown pytest.mark.pre - is this a typo?这个提示的大致意思是pytest找不到标记,发出了警告!2.检查ini文件中的语法是否正确,可以参考我的一篇小结:https://blog.youkuaiyun.com/Test_the_rookie/article/details/123382411。1.对应用例的标记名称与对应文档中记录的标记名称不一致;
2023-03-19 20:29:21
2076
1
原创 使用Python&mysql完成数据拆分校验
背景:公司迭代了一个需求,会将生产的数据根据指定的维度进行拆分,研发要求测试出一个数据验证脚本,去校验数据拆分的准确性。原数据格式为:注意provider_no、channel_no字段的值,原数据格式为多对多。产品需求为:根据operate_type、msg_type、target_type、provider_no、channel_no五个条件为维度,完成数据的拆分,使其对应字段的值有且只有一个(原本一个配置数据拆分之后,可能会有几十条配置)脚本设计思路1:正向思路:确定开发脚本的拆分方式====
2022-12-05 15:51:10
670
原创 利用Python实现mysql数据库的基础操作
b.收集查询结果====>> cur.fetchall (fetchall、fetchone、fetchmany三种方式都可以实现数据收集)except包裹代码块,在没有异常的时候,会正常执行try的语句块,出现异常的时候,可以收集错误原因;a.利用游标调用execute方法,执行指定的语句====>>cur.execute(sql)a.利用游标调用execute方法,执行指定的语句====>>cur.execute(sql)1.封装一个Python类,在该类的init方法中,创建数据库连接对象。
2022-10-25 23:23:15
1150
原创 如何在pycharm中使用git
一、环境配置:1.下载安装git,安装成功后,打开git bash here输入以下命令配置基础信息:git config --global user.name “用户名”git config --global user.name “邮箱地址”输入命令:ssh-keygen -t rsa -C "邮箱地址"生成公共密钥2.进入gitee网站,注册一个账号(gitee是国内做的git的托管服务,因为政策原因,在国内不翻墙的情况下,直接访问git很慢。),账号注册成功之后,需要给gitee配置步骤1生
2022-05-25 23:23:07
5203
原创 浅谈Python的赋值、深、浅拷贝
一、什么是赋值?在Python中,赋值需要使用运算符“=”,赋值并不会生成一个新的对象。赋值操作是引用了原变量值的地址。当原变量的值发生更改时,赋值变量的值也会同步更改。举个例子:a=5的含义是Python解释器在内存中开辟了一个地址来存储“5”这个值,而a=5实际是变量a在引用该值的地址。这里跟指针很像;b=a,实际上是变量b引用了“5”的地址。a、b变量均指向了同一个地址。附件所示就是赋值变量与原变量指向的地址均一致。补充:使用新变量将对应的值更改后,老变量的值也会随之更改(赋值操作是引用了
2022-05-09 23:38:01
1982
原创 Json与dict的区别
一、语言不同:json:是JavaScript的一种数据格式,是字符串dict:是Python的一种数据格式二、语法规则不同:json:1.json键值对使用的引号只能是双引号;2.json的key是有序的、可重复的;3.json的key只能是字符串;4. json的key存在默认值,undefined5. json中的布尔值写法为 true、false6. json中的空值为空时,写法为:null (这里不是指:{“key1”:" “}这样的情况)7. json的value不能直接
2022-04-23 23:08:55
3589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人