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

原创 Redis的基础知识
文章目录Redis的基础知识一些基本命令Redis的执行效率为什么那么快?以及为什么Redis是单线程的?Redis的基础知识一些基本命令redis默认有16个数据库,在redis.conf配置文件中可以看到,如下图:默认使用的是第0个,可以使用select切换数据库!如下图:set命令可以存储键格式set key value,get命令可以取出指定的键对应的值格式get key,如下图:dbsize命令可以查看当前数据库的大小,也即是当前数据库里面存放了多少条数据,如下图:keys
2021-02-17 12:21:01
2602
10

原创 MyBatisPlus中向数据库表中插入数据,MyBatisPlus中使用@TableId注解来实现自增序列id自动插入的功能
MyBatisPlus的@TableId注解的使用这个注释主要用于对应数据库表的实体类中的主键属性。写法:@TableId(value=“数据库主键字段”,type = IdType.六种类型之一)例如:@TableId(value=“user_id”,type = IdType.AUTO )1、注解中type的值的含义 //IdType.ID_WORKER_STR 默认的;底层使用了雪花算法;类型为Integer //IdType.AUTO 数据库自增;数据库上也要勾上自增
2021-01-12 14:36:40
22675
5

原创 SpringSecurity用户认证设置用户名和密码的三种方式
文章目录SpringSecurity用户认证设置用户名和密码的三种方式首先明白几个单词的意思:SpringSecurity默认的用户认证1.通过配置文件进行用户认证2.通过配置类进行用户认证There is no PasswordEcoder mapped for the id "null"异常异常出现原因解决办法在内存中存取密码方式PasswordEncoder接口3.通过自定义编写用户细节实现类(需要查询数据库)进行用户认证SpringSecurity用户认证设置用户名和密码的三种方式首先明白几个单
2020-12-20 16:52:55
5828
2
原创 Fiddle抓包工具的安装
首先进入官网:https://www.telerik.com/download/fiddler/fiddler-everywhere-windows。
2023-11-21 15:37:15
33
原创 TableUtilCache:针对CSV表格进行的缓存
首先来看下CSV文件的结构,如下图:第一行是字段类型,第二行是字段名字;再往下是数据。每个元素之间都是使用逗号分隔。
2023-11-17 14:40:15
759
原创 HTTP——
如下图:第一行:HTTP请求的方法,具体是POST方法还是GET方法,或是其它方法;URI就是你的HTTP请求的路径;后面是HTTP协议的版本;第二行往下连续多行:这些是请求头部分,也就是请求的首部设置的一些信息,相当于对HTTP请求的一些设置;空格行:在请求头与HTTP传递的内容实体之间,需要有一行空格;空格行下方:空格行下方的内容是HTTP的内容实体,比如说客户端发送HTTP请求的时候所发送的参数;
2023-11-13 11:32:40
569
原创 网络安全——
不过,相比对称加密方式,后者在加密和解密上需要花费的时间比较长,在对较长的消息进行加密时往往采用两者结合的方式。今后,除了基本的网络技术外,通过正确理解安全相关的技术、制定合理的安全策略、按照制定的策略进行网络管理及运维成为一个重要的课题。即不是在遇到问题的时候才去处理,而是通过对可能发生的问题进行预测,在可行的最大范围内为系统指定安保对策,进行日常运维,这才是重中之重。然而,随着互联网的日益普及,发生了很多非法访问、恶意攻击等问题,着实影响了企业和个人的利益。IDS根据不同的用途可以提供各种不同的功能。
2023-11-10 18:09:22
1252
原创 应用层协议
利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等。能够让这些应用进行特定通信处理的正是应用协议。TCP和IP等下层协议是不依赖于上层应用类型、适用性非常广的协议。而应用协议则是为了实现某种应用而设计和创造的协议。例如,远程登录等应用经常使用的TELNET协议,它的支持基于文字的命令与应答,通过命令可以执行各种各样的其它应用。
2023-11-10 16:53:54
120
原创 TCP与UDP
TCP/IP中有两个具有代表性的传输层协议,它们分别是TCP和UDP。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。总之,根据通信的具体特征,选择何时的传输层协议是非常重要的。
2023-11-09 20:59:43
457
原创 IP协议相关技术
如果每发送一个IP数据报都要进行一次ARP请求以此确定MAC地址,那将会造成不必要的网络流量,因此,通常的做法是把获取到的MAC地址缓存一段时间。即把第一次通过ARP获取到的MAC地址作为IP对MAC的映射关系记忆到一个ARP缓存表中,下一次再向这个IP地址发送数据报时不需要再重新发送ARP请求,而是直接使用这个缓存表当中的MAC地址进行数据报的发送。因此,这种缓存能够有效地减少ARP包的发送。不过,如果想修改该分层的域名或重新设置域名服务器的IP地址,还必须得在其上层的域名服务器中进行追加或修改。
2023-11-09 20:50:25
134
原创 IP协议,
IP地址(IPv4地址)由32位正整数来表示。TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机。IP地址在计算机内部以二进制方式被处理。然而,由于人类社会并不习惯于采用二进制方式,需要采用一种特殊的标记方式。那就是将32位的IP地址以每8位为一组,分成4组,每组以“.”隔开,再将每组数转换为十进制数。下面举例说明这一方法:从这个计算结果可知,最多可以允许43亿台计算机连接到网络。实际上,IP地址并非是根据主机台数来配置的,而是每一台主机上的每一块网卡(NIC)都得设置IP地址。
2023-11-09 16:31:09
75
原创 数据链路相关技术
10BASE中的“10”,100BASE中的“100”,1000BASE中的“1000”以及10GBASE中的“10G”,分别指10Mbps、100Mbps、1Gbps以及10Gbps的传输速度。而追加于后面的“5”。当然,这种方式中,一个站在没有收到令牌前不能发送数据帧,因此在网络不太拥堵的情况下数据链路的利用率也达不到100%。同样是以太网,在使用交换机与双绞线电缆(亦或是光纤电缆)的情况下,既可以通过交换机的端口与计算机之间进行一对一的连接,也可以通过相连电缆内部的收发线路分别进行接收和发送数据。
2023-11-08 15:54:06
61
原创 Mac地址和IP地址的区别?
这个地址与网络无关,也即无论将带有这个地址的硬件(如集线器、网卡、路由器等)接入到网络的何处,它都有相同的MAC地址,是不可变的。1、MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:00:50:29:5A:8H:1E就是一个MAC地址。一个16进制数代表4个二进制数,代表着4位,所以两个16进制数就代表8个二进制数,就代表一个字节,因此12个16进制数就代表6个字节,48位;1、MAC地址是在OSI通信协议的第二层,即数据链路层;
2023-11-07 20:53:40
88
原创 TCP/IP的基础知识
计算机的外围附加设备或扩展卡,不是直接插到电脑上或电脑的扩展槽上就能马上使用的,还需要有相应驱动程序的支持。IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端再加上自己的IP首部。因此,细看TCP/IP的应用程序功能会发现,它不仅实现OSI模型中应用层的内容,还要实现会话层与表示层的功能。每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。如上图,在下一层的角度看,从上一分层收到的包全部都被认为是本层的数据。
2023-11-07 19:20:48
795
原创 地址的层次性
然而当地址的总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。即使通信主体的IP地址不同,若主机号不同,网络号相同,说明它们处于同一个网段。另一方面,网络号相同的主机在组织结构、提供商类型和地域分布上都比较集中,也为IP寻址带来了极大的方便。个人理解,具有层次性就好比是mysql表使用了索引,可以快速的查询到一个主机,而没有层次性就只能全表搜索,查询效率比较慢。MAC地址转发表中所记录的是实际的MAC地址本身,而路由控制表中记录的IP地址则是集中了之后的网络号。
2023-11-06 15:20:43
54
原创 面向有连接型和面向无连接型
面向有连接型就好比人们平常打电话,输入完对方电话号码拨出之后,只有对端拿起电话才能真正通话,通话结束后将电话扣上就如同切断电源。因此在面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。如果与对端之间无法通信,就可以避免发送无谓的数据。因此,在面向无连接的情况下,接收端需要时常确认是否收到了数据。因此在面向无连接的通信中,不需要确认对端是否存在。即使接收端不存在或无法接收数据,发送端也能将数据发送出去。面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路。
2023-11-06 11:39:15
46
原创 发送Http请求的HttpClientUtil工具
使用http请求连接池,可以把一些http连接放到池子里面,这样我们就不用频繁的进行http连接和断开http连接了,需要的时候直接去连接池里面去拿,用完之后就放回到池子里面。注意这里有一个http请求连接池,功能和数据库连接池的功能差不多,都是用来提高连接效率的。为什么频繁的进行http连接和断开http连接消耗性能呢?返回的状态码是200,插入成功!
2023-11-06 11:18:33
76
原创 网络协议的基本概念
在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。“计算机网络体系结构”将这些网络协议进行了系统归纳。TCP/IP就是IP、TCP、HTTP等协议的集合。现在,很多设备都支持TCP/IP。除此之外,还有很多其它类型的网络体系结构。
2023-11-03 15:21:19
653
原创 TCP/IP--七层通信
比如说现在A用户使用的是A类型的邮箱,而B用户使用的是B类型的邮箱,A类型的邮箱的数据格式是A数据格式,B类型的邮箱的数据格式是B数据格式,如果没有表示层,B用户肯定是不能处理A用户发送来的数据格式的,但是有了表示层之后,表示层可以把A用户发送来的A数据格式转换为“网络通用的标准数据格式”,而B类型的邮箱可以对“网络通用的标准数据格式”进行正确的转换,可以转换成B数据格式,这样就不会出现A邮箱和B邮箱的数据格式不通问题了。而在接收端对应的层,也就是在接收端的应用层会把首部信息和发送端的发送内容相分离。
2023-11-03 14:43:49
357
原创 Linux中的Shell编程
Shell 是一个命令解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。2.对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。1.Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。3.对于大数据程序员来说,需要编写Shell程序来管理集群。
2023-11-01 18:05:12
196
原创 使用MobaXterm向linux窗口化传输文件
之前上大学的时候,经常是XSheel配合Xftp使用,Xftp可以窗口化的往linux服务器传输文件,但是有一个问题,就是Xftp是收费的。后来工作之后师兄给推荐了一个免费的,又好用的类似于Xftp的软件,也可以窗口化的往linux传输文件,这个软件的名字叫做MobaXterm。官网地址:https://mobaxterm.mobatek.net/download.html。
2023-10-31 16:00:18
146
原创 解决MyBatisPlus自动生成的主键值过长的问题?
执行alter table 你的表名 auto_increment = 你想要自增开始的值;可以发现主键id成功从200开始递增,。
2023-10-26 20:18:55
124
原创 MyBatisPlus自动填充
我们往数据库里面插入一条记录,或者是更新一条记录的时候,往往需要有插入时间和更新时间,如果每条sql语句里面都这样写,那就有点太麻烦了,所以我们就可以使用MyBatisPlus的自动填充功能;
2023-10-26 19:48:42
66
原创 MyBatisPlus创建新的Mapper.xml映射文件而不使用框架自带的?
以后使用数据库框架的时候可以使用MyBatisPlus而不适用MyBatis,因为MyBatisPlus更为简便,像简单的增删改查操作,在MyBatisPlus中可以直接完成,不用写Mapper.xml映射文件和动态代理接口中的方法,这些MyBatisPlus底层已经帮我们完成了。而像一些复杂的sql语句,MyBatisPlus底层没有提供的,我们可以自定义,这个时候就需要我们写Mapper.xml映射文件和动态代理接口中的方法了,我们以SpringBoot+MyBatisPlus的整合项目为例。
2023-10-26 16:22:38
589
原创 怎样使用Mybatis数据库连接池?
因此这样连接池就没有意义了。因为里面的连接已经不能够被复用了。这样每次建立连接的时候才不会清空连接池里面的连接对象,而是先去连接池里面找可以复用的连接对象,如果能找到,那么就不重新创建连接了。
2023-10-26 15:27:27
66
原创 SpringBoot中对Spring AOP的实现
IOC 控制反转,也就是IOC容器,我们可以在容器中事先创建对象,后面用到对象的时候就不用再new了,可以直接从IOC容器里面取出来。DI 依赖注入,就是说Spring的对象是在配置文件里面配置的,可以在配置文件里面把一个对象注入给另外一个对象。AOP 面向切面编程,可以大大的解耦,把一些无关业务逻辑的代码单独的抽取出来如下图:使用上面的切面的话,就会切入注解是@GetMapping的所有方法。
2023-10-25 15:53:15
102
原创 SpringBoot+SpringMVC+MybatisPlus
刚开始使用SpringBoot的时候,引入的是spring-boot-starter依赖,如下图:然后就发现springmvc的注解@GetMapping用不了,如下图:这是因为@GetMapping注解是springmvc的东西,而我们的SpringBoot项目目前并没有引入springmvc依赖,那要怎么办呢?可以把spring-boot-starter换成spring-boot-starter-web依赖,这个依赖里面包含了spring-boot-starter,因此spring-boot-s
2023-10-25 11:08:08
304
原创 Mysql第四篇---数据库索引优化与查询优化
文章目录数据库索引优化与查询优化索引失效案例数据准备1. 全值匹配2 最佳左前缀法则(联合索引)主键插入顺序4 计算、函数导致索引失效5 类型转换(自动或手动)导致索引失效6 范围条件右边的列索引失效7 不等于(!=或者<>)索引失效8 is null可以使用索引, is not null无法使用索引9 like以通配符%开头索引失效10 OR前后存在非索引的列,索引失效11 数据库和表的字符集统一使用utf8mb412 一般性建议关联查询优化数据准备左外连接,右外连接,和内连接的区别1 左外连
2023-10-24 19:29:06
593
1
原创 Mysql第三篇---响应太慢?数据库卡顿?如何优化?
一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本,从中选择成本最小的一个作为最终执行的执行计划。如果想要查看某条SQL语句的查询成本,可以在执行完这条SQL语句之后,通过查看当前会话中的last_query_cost变量值来得到当前查询的成本。它通常也是评价一个查询的执行效率的一个常用指标。这个查询成本对应的是SQL语句所需要读取的页的数量。然后我们使用存储过程往表里面存储100多万条数据;
2023-10-23 18:07:17
255
原创 MySql第三篇---索引的创建与设计原则
选择索引的最终目的是为了使查询的速度变快,上面给出的原则是最基本的准则,但不能拘泥于上面的准则,在以后的学习和工作中进行不断的实践,根据应用的实际情况进行分析和判断,选择最合适的索引方式。WHERE条件(包括GROUP BY、ORDER BY)里用不到的字段不需要创建索引,索引的价值是快速定位,如果起不到定位的字段通常是不需要创建索引的。因为更新数据的时候,也需要更新索引,如果索引太多,在更新索引的时候也会造成负担,从而影响效率。等语句的性能,因为表中的数据更改的同时,索引也会进行调整和更新,会造成负担。
2023-10-23 15:45:01
190
原创 Mysql第二篇---InnoDB数据存储结构
页a, 页b, 页c… 页n这些页可以不在物理结构上相连, 只要通过双向链表相关联即可. 每个数据页中的记录会按照主键值从小到达的顺序组成一个单向链表, 每个数据页都会为存储在它里面的记录生成一个页目录, 在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽位, 然后再遍历该槽对应分组中的记录即可快速找到指定的记录。
2023-10-20 17:27:03
236
原创 MyBatis中怎样查看执行的sql语句日志?
在mybatis中我们执行sql语句是通过动态代理接口执行的,我们并不能看到内部的sql的执行情况,所以你执行完一个接口之后,你也不知道sql到底有没有执行?以及sql执行的对不对?直接在mybatis配置文件中加入上面的配置即可,再重新启动项目,就可以使用mybatis自带的sql日志了。
2023-10-20 10:08:25
277
原创 mysql第一篇---索引
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构“,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的技术上实现高级查找算法。索引是在存储引擎中实现的因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。同时,存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引。总索引长度至少为256字节。
2023-10-19 17:42:39
155
原创 Jetty框架--主要用来处理客户端发送来的http请求,这个框架很轻量级,很灵活,适合做没有客户端,只处理http请求的业务
现在服务器是有了,但是我们还没有指定它去处理什么请求,就是客户端发来什么请求会到这个服务器里面去处理?要怎么指定这个服务器处理请求的路径呢?但是目前启动的时候你会发现启动不起来,因为你还没有设置程序的端口号,端口号需要怎么设置呢?至此,使用jetty框架去处理客户端发送的http请求就构建成功了。
2023-10-19 15:34:07
69
原创 使用单个mybatis框架进行mysql数据库的连接和操作?
先来说一下数据库连接的演变,刚开始的时候,最原生的连接并操作mysql数据库的办法是使用JDBC技术,这种技术相对来说写的源码比较多,比较繁杂;后来就出现了JDBCTmplate;再后来就出现了mybatis框架,mybatis框架进行mysql数据库操作还是比较简便的。可以去mybatis中文官网看一下最简单的连接示例,地址:https://mybatis.net.cn/getting-started.html。
2023-10-19 15:07:21
98
原创 如何通过命令行进入到mysql?
首先进入到C盘mysql安装目录的bin文件夹,然后在这个文件夹下打开命令行窗口,如下图:接着输入进入命令mysql -u root -p如下图:可以发现输入连接命令之后需要让你输入mysql连接密码,把你的mysql密码输入即可连接,如下图:
2023-10-19 13:52:18
169
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人