自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 收藏
  • 关注

原创 fast-cgi/cgi协议与php-fpm/php-cgi程序

一、fast-cgi/cgifast-cgi和cgi都是web服务器程序与url处理程序两者之前的应用层网络协议,现在都是用fast-cgi协议,那么现的url处理程序也都是实现了fast-cgi二、php-fpm/php-cgi**php-fpm**是实现**fast-cgi协议**的一个**程序**,**php-cgi**是实现了**cgi协议**的一个**程序**这是网上很多的理...

2020-04-13 20:59:37 325

原创 mysql主从复制 (基于日志点的复制)

主从复制概念: 紫罗兰砢s   mysql的复制(replication)是一个异步的复制过程,从master复制到slave的过程,由三个线程完成,其中两个线程(sql线程和I/O线程)在slave端,另一个I/O线程在Master端。   主服务器把数据变化记录到时二进制日志中,然后从服务器通过在master中的I/O线程读取主服务器上的日...

2018-04-15 14:25:28 673

原创 redis集群的实现及使用php进行调用

一、搭建redis集群 1.概念解释 redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下: 其结构特点: 1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 2、节点的fa

2018-04-01 14:54:47 5580

原创 关于fileReader的一个坑

在用fileReader做图片浏览时, 使用base64格式var file=this.$refs.resource.files[0]var reader = new FileReader();// 以DataURL的形式读取文件:reader.readAsDataURL(file);//读取后的回调js是多线程reader.onloadend=(e)=>{ }Javascript 本身是

2018-03-03 14:15:00 11592 1

原创 js的面向对象总结

之前看过js高程3,但又有些忘计了,想想我以前写的js代码全是过程化,确实要换一种编程风格了。 大多数编程语言如php,java,c#,ts的面向对象都是类->实例但js却不是这样,js不区分类和实例,或者可以说js没有这种类的这种概念,只是通过原型来模拟一种面向对象编程。 在通过原型实现面向对象之前,要了解一个属性,_proto__,所有对象都会在其内部初始化一个属性,就是...

2018-01-14 17:29:15 262

原创 数据操作弹框拦截

数据操作弹框编辑或新增拦截提示弹框显示时设置,“用户操作之前数据”,关闭弹窗时判断,“当前弹窗数据”,是否与,“用户操作之前数据”相等,不相等,就认为用户修改了数据,就会拦截提示是否保存;一、编辑操作的 “用户操作之前数据“是从 网络加载数据 或者 己有表格中的数据设置的,“用户操作之前数据“也是回显数据,这时候编辑操作设置的data属性一般都是冗余的;二、新增操作的“用户操作之前数据”是空对象或者被清空值的模板对象1.“用户操作之前数据”是空对象时,是一次操作就是新增,没有操作过编辑,触发的弹框

2021-11-12 09:51:55 454

原创 正则例子

8-40位包含数字和字母的字符串 String reg="(?=.*\\d)(?=.*[A-z]).{8,40}";一、限定条件必须加再元字符前面(?=.*\\d)(?=.*[A-z])二、元字符8-40长度.{8,40}三、验证 String reg="(?=.*\\d)(?=.*[A-z]).{8,40}"; String test = "a12344..5432"; Pattern pattern = Pattern.co

2020-10-04 17:45:18 200

原创 Bcrypt 动态盐对比静态盐的优点

加盐,一般用于存储密码的场景。一般数据库的信息泄露出去了。那代码文本其实也暴露了,静态盐就被第三方发现了。那么第三方就可以md5(暴破密码值+静态盐),用一个暴破密码值就可以来对比所有用户的密码值是否为这个暴破密码值,这样第三方破解的效率就很高。而如果使用了bcrypt动态盐,bcrypt有个复杂的运算过程。是要比md5复杂无数倍的。设置saltRounds越高,就越复杂,消耗的时间就越久,而且用一个暴破密码值就只能来对比一个用户的密码值是否为这个暴破密码值,效率就很低,暴破成本大大提高。参考.

2020-09-30 21:09:36 626 1

原创 分库分表sharding-jdbc

一、为什么要分库分表

2020-08-25 19:31:26 309

原创 sentinel持久化进nacos

nacos首先要持久化进mysql配置 <!-- SpringCloud ailibaba sentinel-datasource-nacos 持久化需要用到--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId>

2020-08-06 18:43:19 921

原创 sentinal 流控规则 关联模式 流控效果 排队等待 降级策略 热点规则

默认是直接模式,直接模式的单机阈值是做用到资源名上的。也就是/testA。但如果是关联模式。单机阈值是做用到关联资源上的。也就是/testB。也就是说qps1是做用到/testB上。关联模式就是当关联资源超出阈值时。也就是qps超过1时。资源名会被禁止访问。可以验证一下。利用Postman发送一20个请求,每隔0.3秒。也就是大概每秒发送3个请求。也就是qps=3点击run。这时/testB做为关联资源超出我们之前设置的qps=1的阈值。/testA也就被禁止访问了。...

2020-07-31 19:48:10 348

原创 nacos负载均衡

1。修改application.prot.更改为mysql存储信息2。修改cluster.conf添加机器组3。修改startup.sh启动命令增加端口信息5。配置nginx来进行负载均衡

2020-07-29 21:10:31 1722

原创 springboot定时任务

在spring中需要做以下工作在service中直接运行项目就可看到效果。package com.example.vuelog.service.scheduled;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Service;@Servicepublic class ScheduledService { /** * se.

2020-07-11 00:20:47 139

原创 springboot异步任务

@SpringBootApplication@EnableRabbit//开启rabbit@EnableAsync//开启异步public class VuelogApplication { public static void main(String[] args) { SpringApplication.run(VuelogApplication.class, args); }}新建一个service,此service休眠3秒package com.ex

2020-07-09 01:13:39 94

原创 Elasticsearch

常用操作搜索索引为megacorp中的employee类型文档中的first_name属性为Janve的文档行get::http://localhost:9200/megacorp/employee/_search?q=first_name:Janve还有第二种方式 http://localhost:9200/megacorp/employee/_search{ "query":{ "match":{ "first_name":"Ja.

2020-07-07 01:44:58 130

原创 拼图验证的正确流程

拼图验证我之前的流程是这样的1。前端向后端请求一个正确的百分比偏移量2。后端根据ip绑定一个百分比偏移量返回给前端3。前端根据偏移量生成一张缺口图4。再传递用户的偏移量给后端进行检验这样的流程是错误的。我们要知道验证码的意义在于通过一些需要用户手动操作的行为来防止爬虫自动访问一些敏感接口。比如发送验证码接口。所以我之前第一步就错了。我先向后端请求了偏移量,正确的值用户己经知道了。他只需要拿到这个值。直接发送就行。所以正确的流程是1。由后端生成一个缺口图片和imagetoken(关于缺口图

2020-07-03 17:23:26 4783

原创 Failed to convert value of type java.lang.String to required type long

{“code”:400,“msg”:“Failed to convert value of type ‘java.lang.String’ to required type ‘long’; nested exception is java.lang.NumberFormatException: For input string: “edit””,“data”:null}突然出现这个报错的原因在于你在postman中用错了方法,springboot接口请求地址是post方法,你却用了get方法。...

2020-06-21 01:29:33 10753 2

原创 springboot端口一直被占用

netstat -ano|findstr 8083taskkill /f /pid 21460

2020-06-16 17:34:16 1258

原创 绑定yml配置文件到java类

一、首选新建一个person类package com.example.demo.bean;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.stereotype.Component;

2020-05-29 17:09:48 958

原创 Navicat 从己有数据库生成数据表模型

1.点击新建模型2.从数据库导入

2020-05-25 00:43:14 3177 1

原创 协程及swoole协程及协程通信waitgroup

一、io阻塞问题由于线程在操作io时需要从磁盘中读写文件时会阻塞住也就是停止运行等待io操作完成后才会继续往下执行程序。好了问题来了,程序线程就在那干等着io操作完成。会导致程序效率非常低。二、协程解决io阻塞问题那能不能在做io操作时,不要阻塞住,而是继续往下执行。等io操作完成后,再执行io操作完成后的代码。这种遇到耗时操作时挂起(yield)耗时操作,线程继续往下执行程序,耗时操作完成后恢复(resume),恢复就是执行耗时操作完成后的回调程序。就种线程程序执行方式就是是协程。三、回调与协程

2020-05-24 03:48:17 1315

原创 gcc生成so文件,输出变量名编译后转成的的栈内存地址

so文件可以理解为一个函数机器码文件。这个文件中的机器码不能直接执行。需要依赖另一个有main函数的程序进行调用才能执行。举个例子新建头文件test.h声明say_hello函数#include <stdio.h>void say_hello();新建源文件test.c实现say_hello函数#include "test.h"void say_hello(char *name){ printf("hello %s\n",name);}编译test.

2020-05-20 17:55:00 2063

原创 fragment管理

下图清楚的描述了,activiyt中的fragment,和fragment的中的子fraagment中的关系。需要注意的一点是,activiyt被系统 回收后,所有绑定的view,会回归fragment的管理。也就是说明,动态操作获取fragment的view在系统回收activity后。会回到view之前所在的fragment上。...

2020-05-14 12:58:54 330

原创 关于linearLayout wrap_content的一个坑

如图所示红蓝两个Linearlayout,蓝的里面的数字添view是动态添加的。蓝的高度设置是wrap_content。按照常理,蓝的里面的高度应该是数字添加view的总和。但是结果并不是,而是红view的高度。想要改变蓝view的高度只能用代码动态设置。 LayoutParams layoutParams= (LayoutParams) mAnimWrap.getLayoutParams...

2020-05-01 17:35:30 1144

原创 公钥/私钥/https/客户端加密

一、公钥和私钥在rsa加解密算法里,一个公钥字符串和一个私钥字符串,是对应的。公钥私钥可以互相解密。用公钥加密数据后,只有用对应的私钥才能把公钥加密数据进行解密。用公钥加密数据后,或者用对应的公钥才能把私钥加密数据进行解密,这种用公钥解密私钥加密数据也叫签名。二、https由于http在数据的传输过程中是明文传输,在传输过程中有信息泄露风险。这时就可以使用https,https实现了rsa...

2020-04-21 02:42:47 2202

原创 js事件传递流程与事件委托

一、js的事件传递流程js的事件传递流程有两个阶段第一个是事件捕获阶段,第二个是事件冒泡阶段事件捕获阶段是从上到下传递事件,事件冒泡阶段是从下到上传递事件。可以使用addEventListener第三个参数传入true就可鉴别到事件捕获阶段domObject.addEventListener(clickevent,function(),true)默认第三个参数是false,也就监听的...

2020-04-15 17:35:33 658

原创 ai钢笔工具

首选使用钢笔工具绘制四个锚点闭合组成一个矩形锚点工具控制可选中锚点两侧两个锚点的弧度,如下所示,选中了左上角的锚点,可制制两侧两个锚点的弧度。生成描边图形如下还可以通过手柄调整一边的弧度通过手柄调整完后另一边的手柄会消失,想让另一边的手柄出现,需要,使用直接选择工具框选区域,松手另一边手柄就会出现。还可以通过直接选择工具,双击选中锚点,进行自由拖动...

2020-03-25 15:14:59 448

原创 js中关于this的指向和js原型的一些经验

关于this的指向,这是js的一个特点,我们需要了解。首先,我们要明确一点,this默认是指向window的我们还可以用以下方法来验证一下展开window对象查看到了name在window对象中由此可得到this默认是指向window的,但是可以使用new关键字来改变this的指向可以看到这时this指向的就是由test函数构造的test对象上了,而不是指向window对象了f.........

2020-03-20 01:48:20 479

原创 recyclerview分割线实现类RecyclerView.ItemDecoration

首先,要知道recyclervie画线的基本原理。先画背景然后设置item的偏移坐标,把画的背景露出来。具体在recyclrview怎么实现呢?通过rv.addItemDecoration方法设置一个RecyclerView.ItemDecoration类这个类有两个方法分别是负责画背景和负责设置item的偏移坐标分别是画背景方法onDraw(@NonNull Canvas c, @N...

2020-02-28 23:37:28 152

原创 monitor打开指南与布局指南与启动方式

如果你的用户目录有空格,创建一个文件链接windows键 + 空格键+cmd 管理员运行mklink "evevy%20day%20learn" "evevy day learn"然后就能愉快的使用了C:\software\androidsdk\tools\lib\monitor-x86_64>monitor.exe有错误请在文件链接里找,我之前遇见一个错误就是新建了一个ev...

2020-02-26 02:13:12 1369

原创 接口、类的继承调用总结

总结一下吧接口类的继承调用吧。首先定义一个A类 class A { public void test(){ Log.d("sdf","hello world"); } public void a(){ Log.d("sdf","hello world-----A"); } }定义一个接口Cpublic interfac...

2020-02-16 16:55:57 681

原创 Android view触摸事件分发dispatchTouchEvent 拦截 onInterceptTouchEvent 处理 onTouchEvent

首先,理解用户触摸操作引发的触摸事件在android中拆分为3个步骤MotionEvent.ACTION_DOWN//按下事件MotionEvent.ACTION_MOVE//移动事件//结束事件MotionEvent.ACTION_UP://按下直接抬MotionEvent.ACTION_CANCEL://接下后触摸滑动后再抬起然后,再了解,android的事件是怎么传播的不...

2020-02-11 00:46:31 700

原创 css处理最高行数和省略号显示

text-overflow: ellipsis; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;

2019-04-11 17:17:58 437 1

原创 listview控件渲染数据时使用viewHolder

为什么用使用viewHolder?//无需再次新建新控件对象,这就是使用viewholder的好处,把控件实例缓存起来,每个item在渲染时只会使用一个控件对象修改里面的内容,返回新的item view//而不是重复新建控件对象package com.example.test;import android.content.Context;import android.view.Layo...

2019-02-01 17:18:42 337

原创 route的值发生变化请求数据

有时候我们想根据route值发生变化时请求数据//一个组件一个唯一的数据标识,我这里是叫mac watch: { '$route' (to, from) { if(this.$route.params.mac){ this.getUserList() } } } created(){ th...

2018-09-25 16:47:29 625

原创 express中使用socketio

服务端 在一个自定义js文件中var io = require('socket.io')();exports.listen = function(_server){ io.listen(_server);};修改bin/www中的httpserver为var server = app.listen(app.get('port'), function() { deb...

2018-07-01 11:41:12 1472

原创 express开发笔记

1.使用ejs-mate在app.js中要进行以下配置 var engine=require('ejs-mate')app.engine('html',engine)app.set('view engine', 'html');ejs中的layout文件&amp;amp;lt;div id=&amp;quot;main&amp;quot;&amp;amp;gt;&amp;amp;lt;%- body %&amp;amp;gt;&amp;

2018-06-26 21:00:33 181

原创 ejsmate分页

ejs算是蛮多人用的一个node.js的后模板引擎 最近用它实现了分页 模板层代码如下&amp;lt;div class=&quot;pagination&quot;&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt; &amp;lt;a href='/?tab=&a

2018-06-10 15:09:23 552

原创 node-redis操作hash

cnpm install node-redis –savevar redis = require('redis');var client = redis.createClient("6379","127.0.0.1",{auth_pass: "yoursecret"});client.on("error", function (err) { console.log("redis ...

2018-06-07 22:09:37 2178

原创 express中自定义session

我用express-session redis-conect这两个通用的方案来弄sesion的时候一直无效,然后我测试了cookie发现可以正常使用,行,那只能自己实现session了, 在express的脚手架环境下再准备好以下模块 &amp;amp;quot;redis&amp;amp;quot;: &amp;amp;quot;^2.4.2&amp;amp;quot;, &amp;amp;quot;uuid&amp;amp;quot

2018-06-07 22:08:33 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除