自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 nodejs面试总结

一:Node 好处: 处理高并发 事件驱动 轻量 要用于搭建高性能的web服务器,  1. 它是一个Javascript运行环境  2. 依赖于Chrome V8引擎进行代码解释  3. 事件驱动  4. 非阻塞I/O  5. 轻量、可伸缩,适于实时数据交互应用  6. 单进程,单线程二:Express 和 koa的区别?异步 摆脱回调地域...

2019-03-26 10:38:48 11495 1

原创 ThreeJs学习-加载外部三维模型gltf格式

【代码】ThreeJs学习-加载外部三维模型gltf格式。

2024-08-26 10:36:14 356

原创 ThreeJs学习-纹理贴图、顶点UV坐标

UV坐标的作用是从纹理贴图上提取像素映射到网格模型mesh的表面。效果:把一个地球的图片贴到一个球体上。,这样png图片背景完全透明。

2024-08-26 10:34:40 430

原创 ThreeJs学习-层级模型

ThreeJs所有的模型就是一个树结构。

2024-08-25 22:06:33 686

原创 ThreeJs学习-缓冲几何体 BufferGeometry

BufferGeometry是一个没有任何形状的空几何体,可以通过BufferGeometry自定义任何几何形状,具体一点说就是定义顶点数据。缩放、平移、旋转几何体。

2024-08-25 22:02:09 161

原创 Threejs学习-Stats 性能监控器、抗锯齿

可以看到程序当前的运行帧率。

2024-08-25 22:00:31 171

原创 ThreeJS学习-光源对物体表面影响

模拟生活中物体,所以threejs中模拟光照。在threejs中,用网格模型。对物体表面的影响,就是模拟光照。

2024-08-25 21:59:00 211

原创 Threejs学习-三维坐标系、相机控件

Three.js 使用的是右手坐标系,x 轴朝右,y 轴朝上,z 轴朝向自己。通过相机控件OrbitControls实现旋转缩放预览效果。

2024-08-25 21:55:09 348

原创 ThreeJS学习-场景、相机、渲染器

相机默认放在x轴负半轴,目标观察点是坐标原点,这样相当于相机的视线是沿着x轴正方向。只能看到一个立方体的一个面。场景能够让你在什么地方、摆放什么东西来交给three.js来渲染,这是你放置物体、灯光和摄像机的地方。相机看的范围是一个视椎体,相机有近截面和远截面。虚拟的3D环境,用来模拟生活中的三维世界。可以比作一个相机,渲染的动作可以理解为拍照。

2024-08-25 21:53:16 253

原创 react 使用WEB3.0控件开发包 V3.0接入海康威视摄像头

react中使用海康威视摄像头

2024-04-19 16:29:00 841 2

原创 golang学习-channel管道

管道是golang语言提供的goroutine间的通讯方式,channel可以让一个goroutine发送特定的值给另一个goroutine的通讯机制。管道是引用类型。golang语言中channel是一种特殊的类型。像一个队列一样,先进先出。var 变量 chan 元素类型var ch1 chan int //声明一个传递整型的管道。

2024-01-18 15:41:22 629

原创 golang学习-goroutine

goroutine 是 Go 语言支持并发的核心,一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB。区别于操作系统线程由系统内核进行调度, goroutine 是由Go运行时(runtime)负责调度。例如Go运行时会智能地将 m个goroutine 合理地分配给n个操作系统线程,实现类似m:n的调度机制,不再需要Go开发者自行在代码层面维护一个线程池。通过下面代码,发现每次打印的数字都不一样这是因为 10 个 goroutine是并发执行的,而 goroutine 的调度是随机的。

2024-01-17 14:59:08 613

原创 golang学习-golang结构体和Json相互转换

err := json.Unmarshal([]byte(str), &s1) //json 字符串转为结构体。// name string 小写表示是私有变量,不能被json包访问。表示的是转换为json对象时,ID字段变为id,Name字段变为name.

2024-01-12 15:59:27 1103

原创 golang学习-结构体

使用type 和struct 关键字来定义结构体,是值类型格式如下:type 类型名 struct {字段名 类型字段名 类型...2、实例化1、var 结构体实例 结构体类型 var p1 Person2、使用new关键字 var p2 = new(Person)3、使用&对结构体进行取地址操作 p3:=&Person{}第二种和第三种返回的是指针类型4、键值对初始化name :"李四",5、&取内存地址name :"李四",6、简写 不指名key 直接写value。

2024-01-12 15:08:56 505

原创 golang学习-指针

指针也是一个变量,但它是一个特殊的变量,它存储的是另一个变量的内存地址。是引用数据类型。取一个变量的地址:&a定义: var p *int = &a可以理解为 指针变量p中存储的是a的内存地址,但是变量p也有自己的内存地址。//golang中所有的变量都对应一个内存地址a := 10var p = &afmt.Printf("p的值是%v,p的类型是%T,p的地址是%p", p, p, &p)

2024-01-11 12:02:12 508

原创 golang学习-函数

注意:由于闭包中的局部变量不会被立即销毁,所以可能会更占用更多内存。概念:可以访问另一个函数作用域中的变量的函数。闭包:可以让一个变量常驻内存并且不污染全局。局部变量的特点:不常驻内存、不污染全局。全局变量的特点:常驻内存、污染全局。func(参数)返回值{

2024-01-10 18:00:12 492

原创 golang学习-map

一种无序的基于key-value的数据结构,是引用类型,必须初始化才能使用。默认初始值是nil。

2024-01-10 15:19:24 533 1

原创 golang学习-切片

切片:是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。和数组比较来说,非常灵活,支持自动扩容。切片是引用类型。切片只是定义没有扩容,默认值是nil。切片包含三个信息:底层数组的指针、切片的长度(len)、切片的容量(cap)//切片声明//第一种方法//第二种方法//第三种方法// 基于数组定义切片b := a[:] //获取数组里面的所有值。

2024-01-10 14:53:50 373

原创 golang学习-数组

/ 数组初始化 第一种写法//第二种写法fmt.Printf("类型%T", arr2)//第三种写法 让编译器根据初始值个数自行推断数组长度fmt.Printf("类型%T", arr3)//第四种写法。

2024-01-10 10:29:17 409

原创 golang学习-流程控制

go 语言中 for rang 可以遍历数组、切片、字符串、map和channel。建议条件不用()包裹,if{}不能省略,{}中的{必须紧靠着条件。go语言中没有while循环,可以通过for 代替。

2024-01-09 14:37:55 612

原创 Redis的过期键的删除策略

redis是key-value的内存数据库,可以设置redis中key的过期时间,使用expire命令。redis的过期策略指的是缓存的key过期了,redis是如何处理的。在Redis中同时使用了惰性过期和定期过期的两种过期策略。

2024-01-05 10:34:53 526

原创 Map和ForEach的区别,For in和For of的区别

不同点:map返回一个数组,不会对空数组进行检测,如果是空数组map的话还是返回一个空数组,而空数组foreach返回的是undefined。不同点:for in 可以循环对象,循环出的是key,而for of 循环出的是value。for in 是ES6 引进的新特性,弥补 ES5 for of的不足。共同点:都可以遍历数组,this指向window,都不会改变原数组。共同点:都可以循环数组。

2023-11-07 11:18:58 102

原创 常见的web安全及解决办法

1、xss攻击跨站脚本攻击,指通过用户浏览器运行非法的html或者js的一种攻击。原理是攻击者往web页面里面插入恶意执行的代码,导致用户信息泄漏。xss攻击又分为两种,非持久性xss攻击和持久性xss攻击。非持久性攻击:...

2021-11-27 17:20:59 4717

原创 npm 常用的命令

目录npm是什么npm install 安装模块npm uninstall 卸载模块npm update 更新模块npm outdated 检测模块是否过时npm ls 查看安装的模块npm init 初始化package.jsonnpm help 查看某个命令的帮助npm root 查看包的安装路径npm config 管理npm config 的配置文件npm cache 管理npm 模块的缓存npm start 启动模块npm stop 停止..

2021-10-21 10:50:20 1457

原创 使用docker-compose部署node服务和db

初始化了一个koa2的web服务,主要用到mysql和redis。下面就用docker来部署。上篇讲过可以使用docker-compose来编排容器,主要用到三个镜像node、mysql、redis。最后附上改项目github地址。首先我们先编写Dockerfile文件,可以启动web服务。(具体命令不明白的可以看上篇文章)#基于node12FROM node:12-alpine#镜像标签LABEL author = "18769836465@163.com"LABEL version =

2021-10-15 16:58:01 1247

原创 docker学习

目录一、docker 简介:二、centos上安装docker三、docker 常用命令四、Dockerfile五、docker-compose一、docker 简介:.Docker 是一个开源的应用容器引擎,基于 Go 语言。Docker实际上就是一个虚拟化轻量级linux服务器,可以解决我们在开发环境中运行配置问题。使用docker的好处:1.简化配置,安装创建方便2.解决开发环境问题,更专注于代码3.运维更方便4.虚拟技术 快速部署 弹性扩容.

2021-10-14 17:37:38 175

原创 redis 各种数据类型的应用场景

目录一.string类型二.hash 类型三.list 类型四.set类型五.zset 类型 (排序)一.string类型单值缓存 set key value get key value 对象缓存1.set key value(json 数据格式)2.批量set mset user_1_name zhuge user_1_balance 1888mget user_1_name user_1_balance3.分布式锁s...

2021-10-11 14:40:05 147

原创 总结一些mysql

一.常见的一些存储引擎innodb myisam memoryinnodb和myisam区别innodb支持事务 ,myisam不支持事务 innodb 支持表级锁 行级锁 (通过索引),myisam只支持表级锁 innodb支持外键,myisam不支持外键 myisam 会记录表中具体行数而innodb不会记录。所以当查询行数时,innodb会扫描全表计算有多少行,myisam只要读出记录的行数就行。但是当有where条件的时候,情况是一样的。二.事务要么都执行 ,要不都不执行..

2021-08-30 16:36:17 142

原创 mysql的最左匹配原则

目录一、原理二、不符合最左原则导致索引失效的情况1.查询条件中没有第一个字段(优先级最高)2.查询条件中,缺少第二个字段(优先级居中)3.索引顺序(查询优化器)4.特殊查询三、特殊注意1.不要在列上进行计算2.索引和null 的特殊化3.覆盖索引主流索引结构为B+树。B+树的节点存储引擎顺序是从左到右存储,在检索匹配的时候也要满足从左到右匹配。一、原理比如一个表有a,b,c 三个字段,然后建立联合索引 index(a,b,c) 注意这里索引字段的顺序

2021-08-26 15:06:28 2965

原创 ES6 新特性

1.let constlet const是块级作用域与var的区别:var声明变量存在变量提升,let 和const 不存在变量提升const是定义常量,定义的时候必须赋值2.class(类) class Animal { // 构造函数,实例化的时候将会被调用,如果不指定,那么会有一个不带参数的默认构造函数. constructor(name,color) { this.name = name; this.color = color;..

2021-08-24 16:26:17 175

原创 nodejs 单线程为什么效率这么高?

nodejs单线程是js运行环境是单线程的,只有一个主线程。为什么一个单线程的效率可以这么高,处理数万级的请求并不会堵塞呢?这一切得益于nodejs 的事件驱动。一.事件驱动 、事件循环、线程池1.每个nodejs 进程只有一个主线程执行程序代码(单线程),形成一个执行栈。2.主线程之外,还维护一个“事件队列”,当用户的网络请求或者其他异步操作的时候,node都会把操作放到事件队列中,此时并不会立即执行它,然后执行后面的代码,这时代码没有被阻塞,直到主线程代码执行完毕。3.主线程代码执行完毕

2021-08-16 17:34:41 1073

原创 mysql 垂直分表和水平分表

水平分表 :数据表行的拆分,通俗点就是把数据按照某些规则拆分成多张表或者多个库来存放。分为库内分表和分库。比如一个表有400万数据,查询很慢,可以分到四个表,每个表有400万数据垂直分表:列的拆分,根据表之间的相关性进行拆分。常见的就是一个表把不常用的字段和常用的字段就行拆分,然后利用主键关联。或者一个数据库里面有订单表和用户表,数据量都很大,进行垂直拆分,用户库存用户表的数据,订单库存订单表的数据。分库分表方案:1.取模方案:拆分之前,先预估一下数据量。比如用.

2021-08-10 16:04:15 2386

原创 google play 结算服务接入流程

公司有部分需求用到google play 结算服务(google 订阅),去实现商品的订阅,所以研究了一下,记录一下这次开发流程。流程说明:订阅流程:用户从 Google Play 下载安装 APP, 通过APP的支付接口调用 Google Play 的支付界面, 成功后,App 获取到 Google 返回的携带 Token, productId, 与本APP的用户信息, 发送到后端, 进行验证, 验证成功后 发放/开通 相应权限;续订流程:订单续订后,google会发生通知到服务端..

2021-08-02 16:07:36 2962

原创 apple oauth 三方登录

链接:https://segmentfault.com/a/1190000020786994?utm_source=tag-newest

2021-06-29 17:44:34 5654 2

原创 php pdo 脚本记录

<?phprequire 'vendor/autoload.php';use Aws\S3\S3Client;use Aws\Sts\StsClient;header("Content-type: text/html; charset=utf-8");ini_set("display_errors", "On"); //打开错误ini_set("error_reporting", E_ALL);$time_start = microtime(true);...

2021-03-11 14:19:15 153

原创 关于redis

一.什么是redis?Redis 是一个基于内存的高性能key-value数据库。nosql 单线程 单进程的 支持事务二.redis 数据类型:string list hash set hset三.redis的优缺点优点:1.速度快,数据存在内存中2.有丰富的数据类型,应用场景广泛 可用于缓存 消息缺点:1.受物理内存的限制四.redis 应用场景:1.会话缓存2.全页缓存3.队列 提供list 和set 的操作 push pop...

2020-12-16 16:39:13 1643 6

原创 网络的一些知识

关于HTTP和HTTPS:http:超文本传输协议,在客户端与服务端之间传输信息,客户端发送html,css给服务器,服务器返回源码给客户端;https:是一种更安全的传输协议(ssl协议),在协议上加了一层密码,不容易被黑客攻击,更加安全。多用于支付页面,政府机构页面,公安局页面,银行……;HTTP 和 HTTPS 的共同点和区别区别:1.https 协议需要申请证书2.端口不一样 http是80端口 https是443端口··3.http 是超文本传输协议,信息是明文传输,.

2020-08-12 13:40:23 221

原创 Elasticsearch:from&size返回值最大记录的修改设置

url:http://ip地址:9200/索引名称/_settings?preserve_existing=true{"max_result_window":"返回数量"}

2019-10-11 16:29:28 952

原创 使用logstash-input-jdbc 同步mysql 数据到Elasticsearch

1.mac下安装logstash和logstash-input-jdbcbrew install logstash (安装很慢 耐心等待)2..安装logstash-input-jdbc直接在logstash的安装目录bin下运行路径为:/usr/local/Cellar/logstash/7.3.0/bin然后安装 :./logstash-plugin in...

2019-08-13 10:45:47 699

原创 mac 环境下 搭建自己的npm服务器

目标是为私人NPM提供一个低成本的维护和易于使用的解决方案。利用cnpmjs.org你可以:1、搭建一个企业的npm私有库2、搭建一个npm的镜像3、搭建一个完全独立于npm的仓库来存放你想存放的东西一:安装nodejs和mysql二:安装cnpm1.从github上下载源码git clone git://github.com/fengmk2/cnpmjs.org...

2019-07-16 15:38:06 1028

中国省市区数据

中国省市区联动数据

2019-03-26

空空如也

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

TA关注的人

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