目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 git docker windows idea maven esp8266 python Arduino

存档:

nginx

Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好。 Nginx 专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告 Nginx 能支持高达 50000 个并发连接数。 01 Nginx 知识网结构图 Nginx 的知识网结构图如下: 02 反向代理 **正向代理:**局域网中的电脑用户想要直接访问网络是不可行的,只能通过代理服务器来访问,这种代理服务就被称为正向代理。 **反向代理:**客户端无法感知代理,因为客户端访问网络不需要配置,只要把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端。 此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。 03 负载均衡 客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕之后,再将结果返回给客户端。 普通请求和响应过程如下图: 但是随着信息数量增长,访问量和数据量飞速增长,普通架构无法满足现在的需求。 我们首....

CentOS7 U盘安装(终于知道什么原因造成找不到镜像文件了)

每次用U盘安装 CentOS的时候总是会遇到找不到安装images的情况,开始不太了解每次都要先打印一下挂在地址然后在安装配置。不过哦然看到一个帖子发现问题出在设备名上!安装盘要求盘符大小写敏感且不能出现乱七八糟的东西,难怪每次做完镜像看到的U盘名称乱糟糟的,只要把名称改成大写然后安装时 ctrl + e (好像是这个)修改成你的地址即可。

Ubuntu 彻底删除MySQL数据库

首先在终端中查看MySQL的依赖项 dpkg --list|grep mysql 卸载 sudo apt-get remove mysql-common 卸载 sudo apt-get autoremove --purge mysql-server-5.7 清除残留数据 dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P 再次查看MySQL的剩余依赖项 dpkg --list|grep mysql 继续删除剩余依赖项 sudo apt-get autoremove --purge mysql-apt-config 至此已经没有了MySQL的依赖项,彻底删除,Good Luck

对Request.parameter中参数进行添加或修改 (转)

很多时候在传输数据时我们把数据加密了,每次拿到后都需要解密在创建对象这样就很麻烦,写的多了也不美观,很容易造成代码冗余。毕竟解密的步骤都是一样的不如把解密这部分提出来放在拦截器中,把解析的值放回 Parameter中就可以在 Controller直接拿到。 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Vector; /** * request.parameter * * @author SanLi * Created by 2689170096@qq.com/SanLi on 2018/1/28 */ public class ParameterRequestWrapper extends HttpServletRequestWrapper { p....

Java 中isAssignableFrom()方法与instanceof关键字用法

isAssignableFrom()方法与instanceof关键字的区别总结为以下两个点: isAssignableFrom()方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。 isAssignableFrom()方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。 使用方法: 父类.class.isAssignableFrom(子类.class) 子类实例 instanceof 父类类型 isAssignableFrom()方法的调用者和参数都是Class对象,调用者为父类,参数为本身或者其子类。 instanceof关键字两个参数,前一个为类的实例,后一个为其本身或者父类的类型。

Spring 注解整理(个人理解)

顺序不分前后哈就是遇到哪个写哪个记录下 @Cacheable 缓存注解 当返回值为null的时候不缓存 unless = "#result == null" 的意思就是,当返回值为null时,就不缓存 @Cacheable(value = "test:user", key = "#username", unless = "#result == null")

每次更新jar包手动上传就非常的麻烦就写了一个maven自动打包上传服务器并运行的脚本来解放双手来摸鱼

需要安装的工具 expect CentOS: yum install expect Mac: brew insatll expect 配置mvn路径 略 编写本地脚本 #!/bin/sh echo " >>> mvn开始打包 ..." jarpath_orig=mvn clean package |grep 'Building jar:' jarpath=${jarpath_orig#:} jarfile=${jarpath##/} host="192.168.199.666" username="root" password="1" upload_floder="/opt/java/[你项目的目录]/upload/" program="/opt/java/[你项目的目录]/" echo " >>> 打包完成 >$jarfile< 准备上传至服务器目录:$upload_floder " expect -c " set timeout -1 spawn scp -r $jarpath $username@$host:$uploa....

shell 中字符串的操作

var=http://solo.llilei.work/hello.do 字符串长度 var=http://solo.llilei.work/hello.do echo ${#var} 判断一个字符串包含另一个 A="helloworld" B="low" if [[ $A == $B ]] then echo "包含" else echo "不包含" fi 字符串截取 从左侧开始截取前7个字符 [root@client ~]# echo ${id:0:7} 1357902 也可以这样表示 [root@client ~]# echo ${id::7} 1357902 如果从起始位置1开始截取7个字符,可以这样表示: [root@client ~]# echo ${id:1:7} 3579024 方法太多了搞不过来。。 代码如下: 工作中字符串操作举例 filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg' #下面是使用shell字符串操作 buName1=${filename#/jobs/} #去除'/ho....

mysql 时间函数

基本时间 now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm-dd hh:ii:ss'); -- 获取日期部分 time('yyyy-mm-dd hh:ii:ss'); -- 获取时间部分 date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j'); -- 格式化时间 unix_timestamp(); -- 获得unix时间戳 from_unixtime(); -- 从时间戳获得时间 1. 当前日期 select DATE_SUB(curdate(),INTERVAL 0 DAY) ; 2. 明天日期 select DATE_SUB(curdate(),INTERVAL -1 DAY) ; 3. 昨天日期 select adddate(now(),-1) select date_sub(now(),interval 1 day) 4. 前一个小时时间 select date_.......

Linux 下关于热插拔硬盘的命令(必须要主板支持!)

在线系统添加热插拔的SCSI硬盘不需要关机 添加硬盘 echo "scsi add-single-device 1 0 0 0" > /proc/scsi/scsi 删除硬盘 echo "scsi remove-single-device 1 0 0 0" > /proc/scsi/scsi 对于指令中的四个数字分别表示scsi号、Channel号、Id号和LUN号 我们可以通过下述指令查看系统内SCSI硬盘的这些信息 [mnt]# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST1000DM010-2EP1 Rev: CC43 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EZEX-60W Rev: 1A01 Type: Direct-Access AN......

Mysql 常见问题

编码问题 mysql 中的utf8编码并非真正的utf8编码如果存储表情等字符时肯定会报错,需要设置成utf8mb4编码格式 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL mysql的设置默认是不允许创建函数 更改全局配置 SET GLOBAL log_bin_trust_function_creators = 1; 有主从复制的时候 , 从机必须要设置 不然会导致主从同步失败 更改配置文件my.cnf log-bin-trust-function-creators=1 重启服务生效

Mybatis-plus常用API全套教程,看完没有不懂的

前言 官网: https://baomidou.com/ 创建数据库 数据库名为mybatis_plus 创建表 创建user表 DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) ); INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4....

Java Stream 流的编程思想

常用方法   流模型的操作很丰富,这里介绍一些常用的API。这些方法可以被分成两种:  延迟方法:返回值类型仍然是 Stream 接口自身类型的方法,因此支持链式调用。(除了终结方法外,其余方法均为延迟方法。) 终结方法:返回值类型不再是 Stream 接口自身类型的方法,因此不再支持类似 StringBuilder 那样的链式调用。本小节中,终结方法包括 count 和 forEach 方法。   1、逐一处理:forEach     虽然方法名字叫 forEach ,但是与for循环中的“for-each”昵称不同。 | 1 | void forEach(Consumer super T&gt; action); | | - | - |     该方法接收一个 Consumer 接口函数,会将每一个流元素交给该函数进行处理。    Consumer 接口 | 12 | java.util.function.Consumer接口是一个消费型接口。Consumer接口中包含抽象方法``void accept(T t),意为消费一个指定泛型的数据。 | | - | - |    ....

Java 反应式框架Reactor中的Mono和Flux (转载)

Java反应式框架Reactor中的Mono和Flux 1. 前言 最近写关于响应式编程的东西有点多,很多同学反映对Flux和Mono这两个Reactor中的概念有点懵逼。但是目前Java响应式编程中我们对这两个对象的接触又最多,诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼,所以今天我们就简单来探讨一下它们。 2. 响应流的特点 要搞清楚这两个概念,必须说一下响应流规范。它是响应式编程的基石。他具有以下特点: 响应流必须是无阻塞的。 响应流必须是一个数据流。 它必须可以异步执行。 并且它也应该能够处理背压。 背压是反应流中的一个重要概念,可以理解为,生产者可以感受到消费者反馈的消费压力,并根据压力进行动态调整生产速率。形象点可以按照下面理解: 3. Publisher 由于响应流的特点,我们不能再返回一个简单的POJO对象来表示结果了。必须返回一个类似Java中的Future的概念,在有结果可用时通知消费者进行消费响应。 Reactive Stream规范中这种被定义为Publisher<T> ,Publisher<T>....

idea 默认快捷键

⌘+ d 快速复制一行(这个和Eclipse的默认快捷键相反) ⌘ + l 跳转到某一行 ⌥ + ⌘ + l 格式化代码 ⌘ + ⇧ + f 全局搜索 ⌘ + ⇧ + r 全局替换 ⌘ + ⇧ + u 选中字母大小写切换 ⇧ + ⌥ + j 两行合并下面的合并到上边

Java 为什么上传服务器后下载的jar不能执行

jar文件上传服务器后下载到本地执行提示 Error: Invalid or corrupt jarfile XXX.jar 问题出现在ftp下载过程中修改了jar文件的格式问题导致,而wget可以确保格式不受损。。解决方法是使用wegt或者ssh等命令,如下: wget ftp://ip:port/download/XXX.jar --ftp-user=username --ftp-password=password

python 文本操作

python 读取文本的几种操作 1、整个文本读取的方式 # 注意 encodeing默认是gbk读取文件报错时可尝试切换成utf-8等 f = open(path,'模式',encodeing='gbk|utf-8') print(f.read()) # 操作完后记的关闭不然其它方法删不掉 r.close() 2、行读取的方式 t_content = '' with open(path) as f: while True: line = f.readline() if not line: break; t_content = line.rstrip() print(t_content) 模式描述 t文本模式 (默认)。 x写模式,新建一个文件,如果该文件已存在则会报错。 b二进制模式。 +打开一个文件进行更新(可读可写)。 U通用换行模式(不推荐)。 r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+打开一个文件用于读写。文件指针将会放在文件的开头。......

Vue2 常用选项

数据data 类型:Object | Function 限制:组件的定义只接受 function。 说明: 这个对象主要是储存变量用的存储的对象可以在本页调用 详情见 官网说明 示例: var data = { a: 1 } // 直接创建一个实例 var vm = new Vue({ data: data }) vm.a // => 1 vm.$data === data // => true // Vue.extend() 中 data 必须是函数 var Component = Vue.extend({ data: function () { return { a: 1 } } }) 注意,如果你为 data property 使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。 data: vm => ({ a: vm.myProp }) 钩子created 类型:Function 详细: 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),propert......

Nginx 反向代理配置

Ngxin反向代理一个域名请求转发到本地某个端口 nginx.conf 就是默认 ,一般在conf.d/目录下新建个*.conf文件即可 upstream backend { server localhost:8080; # 本地 监听端口 } server { listen 80; server_name www.xxx.com; # 访问域名 access_log off; location / { proxy_pass http://backend$request_uri; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } }

mysql 基本命令语句

mysql 数据库安装后需要配置用户,数据库和表信息: 创建用户 create user 'root'@'%' identified by '123456'; grant all privileges on . to 'root'@'%'; flush privileges; 注意第一行的 % 要和第二行的% 一致 删除用户 drop user 'user'@'127.0.0.1'; 创建数据库 create database [数据库名] default character set utf8mb4 collate utf8mb4_general_ci; 创建表 create table IF NOT EXISTS [表名] ( id int auto_increment, username varchar(255) null comment '注释', password varchar(255) null, mobile varchar(255), primary key (id) #主键 ) ENGINE = InnoDB DEFAULT CHARSET = utf8....