自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Your_is_my_God的博客

一个平平无奇的代码搬运工

  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 微信小程序+PHP 搜索+分页

1、小程序wxml 小程序选择器<view class="section"> <view class="section__title">选择发布类型</view> <picker bindchange="bindType" value="{{index}}" range="{{array}}"> <view class="picker"> 当前选择:{{array[index]}} </view> <..

2021-12-17 14:35:30 1058 2

原创 微信小程序 封装request请求 并配置路由

1、在小程序根目录utils下新建 request.js 文件,里面放置如下内容const URL = 'http://www.tpext.com'module.exports = { //封装request方法,第一个参数请求地址,第二个参数传递参数,第三个参数请求方式 request:function(url,data={},method){ //返回promise对象 resolve 成功的回调方法 reject失败的回调方法 一旦发生就不会改变

2021-12-17 14:15:42 883

原创 面试中最爱问的海量数据处理题

一、海量数据处理所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/trie树。针对空间,无非就一个办法:大而化小,分而治之(hash映射)。二、算法/数据结构基础1.Bloom FilterBloom Filter(BF)是一种空间效率很高的随

2021-11-03 11:54:37 481

原创 消息队列的使用场景

消息队列(Message Queue)“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂 ,包括对象等。队列是一种数据结构,先进先出,保证了顺序性。生产者:发送消息的一端。用于把消息写入到队列中消费者:从消息队列中,依次读取每条消息的一端。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有Acti

2021-11-03 11:52:45 312

原创 实际工作中用到的ElasticSearch

es入门概述Elasticsearch基于Lucene(搜索引擎库)的开源搜索引擎,对外提供一系列基于Java和HTTP的API, 目的是通过简单的RESTful API来隐藏Lucene的复杂性。具有以下特点: 支持全文检索 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以对照数关系型据库来理解Elasticsearch的有关概念。关系型数据库(Relational DB) Elasticsearch(搜索引擎) 数据

2021-11-03 11:50:59 180

原创 如何设计高并发的架构

纵向和横向通用的设计方法主要是从「纵向」和「横向」两个维度出发,俗称高并发处理的两板斧:纵向扩展和横向扩展。 纵向扩展(scale-up) 它的目标是提升单机的处理能力,方案又包括:1、提升单机的硬件性能:通过增加内存、CPU核数、存储容量、或者将磁盘升级成SSD等堆硬件的方式来提升。2、提升单机的软件性能:使用缓存减少IO次数,使用并发或者异步的方式增加吞吐量。 横向扩展(scale-out) 因为单机性能总会存在极限,所以最终还需要引入横向扩展,通过集群部署以进一步提高并

2021-11-03 11:44:44 6552 2

原创 PHP Zval结构

变量的内部实现变量是一个语言实现的基础,变量有两个组成部分:变量名、变量值,PHP中可以将其对应为:zval、zend_value,这两个概念一定要区分开,PHP中变量的内存是通过引用计数进行管理的,而且PHP7中引用计数是在zend_value而不是zval上,变量之间的传递、赋值通常也是针对zend_value。PHP中可以通过$关键词定义一个变量:$a;,在定义的同时可以进行初始化:$a = "hi~";,注意这实际是两步:定义、初始化,只定义一个变量也是可以的,可以不给它赋值,比如:$

2021-10-22 19:56:03 296

原创 XSS 简介 及 如何防御

XSS(Cross Site Scripting,跨站脚本攻击)XSS 全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本。运行预期之外的脚本带来的后果有很多中,可能只是简单的恶作剧——一个关不掉的窗口: while (true) { alert("你关不掉我~")..

2021-10-22 14:40:46 370

原创 HTTPS 是怎么保证安全的

HTTP简介超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS简介HTT

2021-10-22 14:37:44 636

原创 二叉树深度优先遍历和广度优先遍历

二叉树深度优先遍历和广度优先遍历深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍历:左子树->右子树->根节点广度优先遍历:又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结

2021-09-26 16:57:30 522

原创 MySQL事务-详解

MySQL事务-详解什么是事务事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。事务的特性(ACID) 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作

2021-09-26 16:44:01 260

原创 Linux 常见面试题及答案

Linux 常见面试题知识点 1、在Linux系统中,以文件方式访问设备。 2、Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统 3、Linux文件系统中每个文件用i节点来标识 4、全部磁盘块由四个部分组成,分别为:引导块、专用块、i节点块、数据存储块 5、前台起动的进程使用:ctrl+c禁止 6、安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统 和 交换分区。 7、网络管理的重要任务是监控 和 控制

2021-09-26 16:34:09 791

原创 Linux 异步、同步、阻塞、非阻塞

同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务非阻塞调用指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回异步、同步是发生在用户空间内,当用户发起一个IO的调用的时候,同步的时候,如果这个操作比较耗时

2021-09-26 16:28:55 275

原创 Linux IO模型

IO模型关键概念一些概念1. 内核空间、用户空间操作系统的核心是内核,独立于其他应用程序,可以访问底层会保护的硬件,Linux为了防止用户进程直接操作内核,将虚拟地址空间,分成了用户空间和内核空间,用户空间就是用户进程所在的空间。2. 进程切换为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换。因此可以说,任何进程都是在操作系统内核的支持下运行的,是与内核紧密相关的从一个进程的运行转到另一个进程上运行,这个过程中经

2021-09-26 16:24:18 134

原创 单点登录(SSO)的设计与实现

一、前言1、SSO说明SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。SSO(Single Sign On)_百度百科例如访问在网易账号中心(网易邮箱帐号安全中心)登录之后访问以下站点都是登录状态网易直播http://v.163.com 网易博客http://blog.163.com 网易花田http://love.163.com 网易考拉https://www.kaola.com 网易L...

2021-09-26 16:17:31 454

原创 wx小程序 简单点赞和评论

点赞 小程序端wxml:<view> <image wx:if="{{item.like==1}}" bindtap="like" data-id="{{item.id}}" src="/img/sheart.png" style="width:80rpx;height:80rpx"> </image> <image wx:else bindtap="like" data-id="{{item.id}}" src="/img/heart

2021-09-26 15:57:13 1214 1

原创 wx小程序 多文件上传到 aliyunOSS

前端wxml只需要一个小小的上传框:<l-image-picker count="9" bind:linchange="onChangeTap" bind:linremove="removeImage"/>这里使用的是一个lin-ui组件js: onChangeTap(event) { //获取最新上传的所有图片临时路径 let tempFilePaths = event.detail.current; //定义一个空数组,进行存放上传图片url

2021-09-26 15:49:04 150

原创 wx小程序授权登录 和 授权获取手机号

前提:个人AppID无法获取手机号,需要先申请测试号使用方法:将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。微信官方文档:获取手机号 | 微信开放文档小程序端wxml代码:<button open-type="getPhoneNumber" bin

2021-09-26 15:05:06 1167

原创 设计模式 类型 原则 及 概念

概念设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的⼀系列解决⽅ 案。它不是语法规定,⽽是⼀套⽤来提⾼代码可复⽤性、可维护性、可读性、稳健性以及安全性 的解决⽅案类型根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的⾯向对象软件元素) 中所提到的,总共有 23 种设计模式。这些模式可以 分为三⼤类:创建型模式(Creationa

2021-09-23 14:40:21 149

原创 MySQL 主从复制 实现概念及优点

MySQL复制是什么?(WHAT?)为了减轻主库的压力,应该在系统应⽤层⾯做读写分离,写操作⾛主库,读操作 ⾛从库。下图为MySQL官⽹给出的主从复制的原理图,从图中可以简单的了解读 写分离及主从同步的过程,分散了数据库的访问压⼒,提升整个系统的性能和可 ⽤性,降低了⼤访问量引发数据库宕机的故障率。复制的结果是集群(Cluster)中的所有数据库服务器得到的数据理论上都是⼀样 的,都是同⼀份数据,只是有多个copy。MySQL默认内建的复制策略是异步 的,基于不同的配...

2021-09-23 11:18:19 496

原创 MySQL优化三大方向 简单描述

优化MySQL所在服务器内核(此优化⼀般由运维⼈员完成)。 对MySQL配置参数进⾏优化(my.cnf)此优化需要进⾏压⼒测试来进⾏参数调整。 对SQL语句以及表优化。MySQL参数优化1:MySQL 默认的 ⼤连接数为 100,可以在 mysql 客户端使⽤以下命令查看mysql> show variables like 'max_connections';2:查看当前访问Mysql的线程 mysql> show processlist;...

2021-09-23 10:14:27 145

原创 MySQL 索引结构

前言:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。 索引的实现通常使用 B_TREE。B_TREE 索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据;相反,它从根节点开始,根节点保存了子节点的指针,存储引擎会根据指针快速寻找数据。MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址,即:MyISAM索引文件和数据文件是分离的,MyISAM的索引文件仅仅保存数据记录的地址。MyISAM中索引检索的算法为

2021-09-23 10:06:40 65

原创 laravel 服务容器,IOC与依赖注入

Laravel服务容器IoC(控制反转) DI(依赖注入)Laravel服务容器是一个用于管理类依赖和执行依赖注入的强大工具IoC(控制反转)与DI(依赖注入)IoC(控制反转)与DI(依赖注入)是现在特别流行的概念,也是目前降低软件开发复杂度;提升模块低耦合、高内聚所使用的一种设计模式。控制反转与IoC容器控制反转:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源;控制反转是用来进行对象解耦。通过借助第三方(IoC容器),将具有依赖关系的对象进行解耦。

2021-09-23 09:49:28 246

原创 PHP OSS对象存储 腾讯云、阿里云、七牛云 SDK

1、背景:我们在使用对象存储时常常在为使用什么服务而纠结,那么现在一个完美的解决方案来了,他就是一个集成的三合一的一个SDK,由一个大佬编写2、安装:在任何php框架内执行composer require china-li-shuo/oss-sdk3、使用use lishuo\oss\Manager;use lishuo\oss\storage\StorageConfig;<?php // string $appId, string $appKey, strin.

2021-09-19 16:57:32 501

原创 php 调用 百度SDK 实现 图片审核+文本内容审核(敏感词过滤)

1、注册百度智能云账号2、控制台领取免费资源、创建内容审核应用3、使用<?phpnamespace app\api\controller;use app\Request;class Audit{ /** * 内容审核 */ public function contentAudit(Request $request) { $content = $request->post('content');

2021-09-19 10:35:26 1004 1

原创 微信小程序 用函数实现 防抖 和 节流

1、百度搜索防抖和节流的含义,理解其意义2、了解小程序和其js封装位置3、在其根目录utils下创建 tool.js/*函数节流*/function throttle(fn, interval) { var enterTime = 0;//触发的时间 var gapTime = interval || 300 ;//间隔时间,如果interval不传,则默认300ms return function() { var context = this; var bac.

2021-09-19 10:28:25 284

原创 直播电商解决方案

1.解决方案介绍直播电商解决方案,是基于常规电商网站,引入视频直播服务,打造新型营销模式的一种电商解决方案。1.1 视频直播视频直播服务(ApsaraVideo Live)是基于领先的内容接入、分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、低延迟、高并发的音视频直播服务。工作原理: 通过采集设备将直播流推送至直播中心,推送的视频流通过CDN边缘节点进行加速保证上行传输的稳定性。移动端的推流工具可以使用提供的直播推流SDK进行开发。 视频流

2021-08-11 20:58:03 1759

原创 Laravel8.5 10分钟未付款订单通过Redis键空间通知过期事件归还库存

在 PHP对Redis键空间通知过期事件的应用实例 一文中,已经介绍了PHP对Redis键空间通知功能的应用。本文主要介绍laravel中对Redis键空间通知过期事件的应用。场景:用户下单后一个小时如果没付款就取消掉订单。要实现这个,有了前文的基础,我们肯定不会只想到crontab定时去做,还会想到用Redis去实现。那么具体该怎么操作?请往下看:1、先配置一下 .env 文件 ,缓存设置为Redis。CACHE_DRIVER=redis2、在控制器中新增订单的方法中加入缓存。

2021-08-11 20:20:28 339

原创 阿里云加了防盗链,小程序白名单如何填写

一、场景场景一:我的阿里云服务器,做了图片连接的防盗链,需要添加域名白名单图片才可显示出来场景二:我们的使用场景是这样的,DNS解析至阿里云的CND,CDN的回源指向阿里云的OSS二、问题我小程序没加白名单的时候图片显示不出三、解决需要如下操作:1、在CDN上防盗链白名单设置 servicewechat.com2、在OSS上防盗链白名单设置https://servicewechat.com只有1、2两个配置都对了才能用。作者:柯作链接:https://jueji.

2021-08-11 20:08:58 646

原创 阿里云对象存储OSS及CDN加速配置

目录十大云存储服务商 登陆阿里云官网,开通对象存储服务 OSS 创建存储空间 绑定自定义域名 配置阿里云CDN加速 购买阿里云免费SSL证书 阿里云CDN配置HTTPS证书 测试是否配置成功 创建阿里云子账户,获取访问密钥 到此为止,项目中对接阿里云对象存储OSS所需参数都有了 十大云存储服务商www.hostucan.cn/cloud-stora…1. 登陆阿里云官网,开通对象存储服务 OSS三种方式

2021-08-11 20:07:03 609

原创 laravel8 报错 路由不存在?

Laravel 8配置好路由后,访问提示:Target class [XXXXXController] does not exist.错误。出现这个错误的原因是Laravel8对路由命名空间做出了更新(详见:路由命名空间更新),而我们仍然在使用Laravel6或者7版本的方式写路由。Laravel 8路由配置方式:use App\Http\Controllers\LoginController;Route::get('login', [LoginController::class, 'index

2021-08-01 20:10:02 1467

原创 PHP模拟GET,POST请求

/***模拟GET请求**/function curlGet($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_set.

2021-08-01 20:07:46 400

原创 php 递归 分类树

//模型公众方法,递归 public function treeLevel(array $data, int $pid = 0, string $html = '--', int $level = 0) { //静态数组不在方法内,所以无法覆盖 static $arr = []; foreach ($data as $val) { if ($val['pid'] == $pid) { .

2021-08-01 20:06:04 121

原创 PHP 使用 JWT 实现 Token 安全性验证

1、首先在框架内使用命令下载SDKcomposer require firebase/php-jwt2、在框架内的公共方法或者其他地方封装创建Token的方法function createToken($adminId=666){ $secret = "THIS_IS_SECRET"; //密匙 $payload = [ 'iss'=>'sol', //签发人(官方字段:非必需) 'exp'=&.

2021-08-01 20:00:24 380

原创 一个网页从输入地址回车,到完整展示网页内容这段时间里,做了哪些工作(网站访问流程)

链路流程0、浏览器本地缓存匹配;1、本地hosts映射对比;2、本地dns缓存解析;3、远程dns解析获得服务器ip地址;4、浏览器发送tcp连接请求包(syn);5、请求包经过传输层、网络层、数据链路层封装通过网卡到达路由器;6、路由器转发数据包到所属运营商服务器;7、运营商服务器通过寻址最短路径通过中继节点到达指定ip地址;8、服务器端可能存在反向代理或者负载均衡,都是直接转发请求至上游服务器,当然也可以制定安全防御规则直接丢弃请求包;9、上游服务器收到连接请求,

2021-07-22 16:48:03 112

原创 php 实现 OSS对象云存储

1、以七牛云图片上传为例,去官网申请账号,实名认证后创建空间2、框架内composer下载SDKcomposerrequire qiniu/php-sdk3、以下是单文件上传实例(不同框架内使用方法大同小异): 密钥及空间名自行配置public function imgdo(Request $request) { // 需要填写你的 Access Key 和 Secret Key $accessKey = ""; ...

2021-07-21 11:26:30 517

原创 php怎么做支付宝支付(个人学习)

常见支付方式:微信支付、支付宝支付、银行卡支付。支付宝支付接口的类型:(商家的集成方案)担保交易接口 用户支付的资金先进入担保账户,确认收货后才进入商家的账户即时到帐接口 用户支付的资金立即进入商家账户担保交易接口在2016年8月已经停止申请。支付宝支付流程:1、创建应用(企业身份正式环境)支付宝开放平台:https://open.alipay.com使用自己的支付宝账号登录平台进入我的开放平台创建应用应用创建完毕,要为其设置功能.

2021-07-21 11:15:09 1113

原创 ThinkPHP5使用极验进行行为验证

第一步:将极验的SDK包放入TP框架的extend目录*<u>(使用SDK包请联系作者)</u>*第二步:在框架的某一个控制器下,自定义方法完成获取验证码的操作//验证码 public function getGtCode(){ //引入第三方文件的方式 Loader::import('jiyan.web.StartCaptchaServlet'); //实例化类文件 $obj = new \Start

2021-07-21 11:00:19 320

原创 必须掌握的 MySQL 优化原理

必须掌握的 MySQL 优化原理说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型…你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQ.

2021-07-21 10:54:09 152

原创 PHP秒杀--消息队列实现及应用

主要了解如下知识:  1、队列是个什么东西,他能干什么?  2、对列的应用场景有哪些?  3、如何使用队列对业务进行解偶?  4、如何使用Redis队列来消除高压力?  5、专业的对列系统RabbitMQ如何使用归纳如下主要内容  @消息队列的概念,原理和场景  @解耦案例:队列处理订单系统和配送系统  @流量削峰案例:Redis的List类型实现秒杀  @RabbitMQ:更专业的消息系统实现方案一、认识消息队列1.1 消息对列概念  从本质上说消息对.

2021-07-21 10:50:02 926

素材网站整理.xlsm

里面有各种图片素材网站

2021-09-15

空空如也

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

TA关注的人

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