自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 elasticsearch 实战

实战插入测试数据POST forum_article/_bulk{"index":{"_id":1}}{"articleID":"article_1","userID":1,"hidden":false,"postDate":"2017-01-01"}{"index":{"_id":2}}{"articleID":"article_2","userID":1,"hidden":true,"postDate":"2017-01-02"}{"index":{"_id":3}}{"articl

2022-04-26 15:45:43 163

原创 virtualbox 共享文件夹

设置共享文件夹信息安装增强功能若弹框“Could not mount the media/drive ‘D:\vm\VBoxGuestAdditions.iso’ (VERR_PDM_MEDIA_LOCKED).”可手动安装,重启即可sudo mkdir --p /media/cdromsudo mount -t auto /dev/cdrom /media/cdrom/cd /media/cdrom/sudo sh VBoxLinuxAdditions.run创建挂载目录m.

2022-03-01 14:14:28 210

原创 mysql 死锁

show engine innodb status;show OPEN TABLES where In_use > 0; SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;show full processlist;show variables like '%general_log%'kill 124SELECT * FROM sys.sessi

2022-02-16 16:36:02 353

原创 http websocket共用同个端口

为了兼容之前的已充分支持 HTTP 的网络设施,WebSocket 连接建立是通过 HTTP 协议完成的。使用 WebSocket 通信的两端利用 HTTP 协议升级机制,从 HTTP 协议切换到 WebSocket 协议。切换前后的通信都在同一个 TCP 连接上完成。在服务端,http 服务完成 WebSocket 握手后,会交出 socket 控制权,由 WebSocket 服务来进行后续处理。一些老的 HTTP 服务程序和反向代理程序不懂得如何处理 WebSocket 握手和后续的 WebSocke

2022-02-09 14:56:49 2925

原创 curl post 延时长原因及解决方案

原因:https://www.jianshu.com/p/154c310748db解决方案:https://www.e-learn.cn/topic/1471286

2022-02-08 15:31:52 377

原创 APM工具

Zipkinphp插件composer require openzipkin/zipkin

2021-07-29 12:30:47 60

原创 http请求

content-typeapplication/json。消息是序列化后的json。application/x-www-form-urlencoded。数据被编码为名字/值对,标准编码格式multipart/form-data。需要在表单中提交文件,就使用该格式。text/plain。数据以纯文本形式编码。post与get区别post通过request body传递参数是隐式的,更安全,数据长度可以比较大。get把参数包含在url中,是显式的,数据长度有限制,get请求会被缓存起来。po

2021-07-09 23:23:03 92

原创 数据丢失及恢复

elasticsearch近乎实时,文档存储,搜索与分析,PB级数据。写入原理数据写入buffer缓冲和translog每隔1s将buffer中的数据写入 segment file,并写入os cache,buffer被清空,此时就可以供search,所以说是近乎实时的重复上面写入,segment file不断增加,translog不断变大,一定时间或translog到一定大小,就发生commint,将os cache数据强制刷新到os disk,清空translog,创建新的translog。

2021-07-09 15:18:19 152

原创 mysql 索引优化和算法

**索引注意事项**根据区分度,更新频繁判断是否要创建索引。区分度:count(distinct(列))/count(*)如果区分度高于80%,则可以建立索引,且区分度越高,如果创建联合索引,应该放在左侧。如果更新过于频繁的字段不适合建立索引,因为更新会变更b+树,会大大降低索引性能。如果一个列的前一定长度的字节,便能做到全列索引,可以使用create index ix_test on aaa(col(20))创建短索引,不过短索引order by和group by,也不能用于覆盖索引。

2021-07-08 15:57:37 88

原创 数据库备份恢复策略

Mysql主要策略:一周一次全量备份,并删除上周的增量备份,全量备份;每天一次增量备份。全量备份mysqldump -uroot -padmin123 --quick --events --flush-logs --delete-master-logs --single-transaction --databases fecmall>aa.sql参数说明:–lock-tables锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于MySQL数据库引擎为MyISAM 表,如果

2021-02-24 11:54:07 553

原创 php curl和解压

get/post json请求function getCurlData($url,$type="get", $headerData, $data=array(),$timeout = 30){ //对空格进行转义 $url = str_replace(' ','+',$url); if ($type == "get") { if (!empty($data) && is_array($data)) {

2021-02-02 14:12:51 257

原创 yii2 缓存实现静态

yii缓存一共分为四种,分别为数据缓存,片段缓存,页面缓存,http缓存。缓存方式,文件存储缓存(yii\caching\FileCache),apc扩展缓存(yii\caching\ApcCache),数据库缓存(yii\caching\DbCache)缓存依赖:DbDependency,DbQueryDependency,ExpressionDependency,FileDependency,TagDependency,ChinedDependency创建缓存依赖$fileDependency

2021-01-07 11:20:57 238

原创 认证和授权

认证一种是session会话状态,信息保存在服务器端;一种是客户端发送每一个请求的同时带一个 secret access token 来验证用户。因为一个 access token 可以用来确定一个唯一的用户和验证这个用户, API Requests 应该总是通过 https 协议来传输, 以防止 man-in-the-middle (MitM) 攻击。HTTP Basic Authentication;客户端将用户名和密码中间用“:”分隔合并,并将合并后的字符串用BASE64编码,在每次请求数据 时

2021-01-05 17:27:29 676

原创 php 解释型语言

编译型语言使用专门的编译器,针对特定平台一次性翻译成该平台硬件执行的机器码;一次编译,循环使用;c,c++,objective-c等都属于编译型语言;它的编译和执行是分开的,先编译成二进制可执行文件,然后在次执行优势:执行速度快;消耗的内存更少;劣势:依赖平台。解释型语言程序运行将源程序预编译成中间语言,然后再由解释器执行中间语言,每次执行解释型语言的程序都需要进行一次编译,不能脱离解释器独立运行;c#,php,java,python等都是解释型语言。优势:跨平台;安全性。劣势:执行速度慢,消

2020-12-31 11:14:25 367

原创 Mysql

运算符算术运算符(+,-,/,%,DIV,MOD)比较运算符(=,>,<,>=,<=,!=,BETWEEN,NOT BETWEEN,IN,NOT IN,<=>,like,IS NULL,IS NOT NULL)逻辑运算符(NOT,AND,OR,XOR)位运算符(&,|,^,<<,>>,!)CASE…WHEN…THEN…ELSE…END字符串函数ASCII(s) ,CHAR_LENGTH(s),CHARACTER_LENGTH.

2020-11-16 16:49:57 72

原创 nginx lua token

nginx需安装lua模块,可使用集成环境OpenResty。location /aa { access_by_lua ' local args = ngx.req.get_headers(); local token1 = args["appid"]; local token2 = math.floor(ngx.time()/100); loc

2020-10-06 15:03:27 169

原创 小程序

一个小程序主体部分由三个文件组成,必须放在项目的根目录。app.js,app.json,app.wxss。一个小程序页面主要由四个文件组成,–.js,–.wxml,–.json,–.wxss。一个小程序框架系统分为两部分:逻辑层和视图层。框架的核心是一个响应的数据绑定系统。一个自定义组件由json,wxml,wxss,js四个文件组成。因为 WXML 节点标签名只能是小写字母、中划线和下划线的组合,所以自定义组件的标签名也只能包含这些字符。自定义组件和页面所在项目根目录名不能以“wx-”为前缀,否则

2020-09-23 12:12:42 394

原创 rabbitmq

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。它是用来接收、存储和发送消息(message)这种二进制数据的。安装Erlang官网下载地址:http://www.erlang.org/RabbitMQ官网下载地址:https://www.rabbitmq.com/php amqp模块下载地址:http://pecl.php.net/package/amqp,windows环境需要将php_amqp.d

2020-09-19 21:00:44 153

原创 秒杀系统

通常的秒杀是大量的用户抢购少量的商品,类似这样的需求只需要简单的进行库存缓存,就能在实际创建订单前过滤大量的流量。当创建订单成功,才通知客户段让用户进行后续的地址,优惠券信息确认,减少对数据库冲击,也过滤掉大部分的客户。一定时间内没有付款,则将货品退回库存。单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。watch numOK127.0.0.1:6379> multiOK127.0.0.1:6379

2020-09-18 17:43:31 298

原创 memcached

memcached不是一个数据库,他仅仅是内存,不是信息的唯一来源,来辅助数据库操作的,来提升信息的查询速度。telnet HOST PORTset key flags exptime bytesadd key flags exptime bytesreplace key flags exptime bytesappend key flags exptime bytesprepend key flags exptime bytescas key flags exptime bytes un

2020-09-17 14:35:14 65

原创 php环境安装

centos + apache + mysql + phpapacheyum install -y httpdsystemctl start httpd.servicesystemctl status httpd.servicesystemclt enable httpd.servicefirewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reloadfirewall-cmd --list-ports

2020-09-10 12:31:30 85

原创 mysql mongodb redis memcache apc

内存和硬盘的关系,硬盘放置主体数据用于持久化存储,而内存则是当前运行的那部分数据,CPU访问内存而不是磁盘,这大大提升了运行的速度,当然这是基于程序的局部化访问原理。Redis + MySQL,它是内存+磁盘关系的一个映射,MySQL 放在磁盘,Redis放在内存,这样的话,web应用每次只访问Redis,如果没有找到的数据,才去访问 MySQL。前者是内存数据库,数据保存在内存中,当然速度快。后者是关系型数据库,功能强大,数据访问也就慢。Redis 和mc都是缓存,并且都是驻留在内存中运行的,这大

2020-09-10 10:13:19 167

原创 数组与链表的区别

逻辑内存数组必须事先定义固定的长度从栈中分配空间,自由度小,插入、删除数据项时,需要移动其它数据项,非常繁琐链表动态进行存储分配,数据结构包括队列,栈,双向链表等从堆中分配空间,自由度小大,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项php数组是由哈希表和链表实现。...

2020-09-09 10:21:59 59

原创 网络是怎样连接

浏览器是一个具备多种客户端功能的综合性客户端软件。URL会包含服务器的域名和要访问的文件的路径名,访问时使用的协议。浏览器首先会对url进行解析,从而生成发送给web服务器的请求消息。委托操作系统将信息发送到网络中。(调用socket库的connect程序组件,发送描述符+服务器ip+端口,执行连接操作)。收到请求消息后,web服务器会对其中的内容进行解析,根据要求来完成自己的工作,然后将结果存放在相应信息中。TCP/IP的结构就是由一些小的子网(子网可以理解为用集线器连接起来的几台计算机),.

2020-09-08 15:42:18 111

原创 paypal订阅

包。composer require paypal/rest-api-sdk-phppaypal 沙箱账号。https://developer.paypal.com/developer/applications创建升级计划,并激活curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-plans/ \-H "Content-Type: application/json" \-H "Authorization:.

2020-09-07 14:19:07 451

原创 docker

2020-09-04 16:41:01 58

原创 vue3.0

安装vue-cli3cnpm install --g @vue/cli对比vue2.0少了build,config文件夹可在根目录下创建vue.config.js进行相关配置component创建props/$emit$children/$parent$emit/$on$attrs/listenersParent.vue<template> <div class="home"> <img alt="Vue logo" src="../asse

2020-08-27 17:59:53 285 1

原创 web攻击

XSS:跨站脚本攻击可分为存储型XSS:如攻击者可能在用户提交保存到服务器端的数据里输入恶意脚本(),服务端没有验证直接存入数据库,下次用户再访问拿出来时,就会执行该恶意脚本。反射性XSS:脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。目前防御XSS主要有如下几种方式:过滤特殊字符避免XSS的方法之一主要是将用户所提供的内容进行过滤(如上面的script标签)。addslashes进行转义。SQL注入:这是最常见的 SQL注入攻击

2020-08-20 10:51:52 100

原创 Javascript 到 PHP 加密通讯的简单实现

对于大多数网站来说,大部分数据往往没必要搞这么严密,可以选择性地只针对某些重要的小数据进行加密,例如密码。对于小数据量加密来说,可以没必要使用整个流程,只使用RSA即可,这样将大大简化流程。为什么是小数据量?因为相对于对称加密来说,非对称加密算法随着数据量的增加,加密过程将变的巨慢无比。所以实际数据加密一般都会选用对称加密算法。因此PHP中的openssl扩展公私钥加密函数也只支持小数据(加密时117字节,解密时128字节)。网上已有一些AES、RSA的开源Javascript算法库,在PHP中更可直接

2020-08-20 09:55:59 197

原创 YII 学习

composer 安装用composer创建自己的项目,a. composer init b. composer install c. require ‘…/vendor/autoload.php’d. 修改composer.json,增加autoload项,并增加psr-4自动加载规范,并在psr-4增加 命名空间:目录 对应关系 e. composer dump-autoload f.开始编程安装yii2composer create-project --prefer-dist yiisoft.

2020-08-13 14:23:45 303

原创 Logstash

Logstash能够动态地从多个来源采集数据、转换数据,并且将数据存储到所选择的位置。通过输入、过滤和输出插件,Logstash可以对任何类型的事件加工和转换。创建LogstashService(简称Logstash)实例,并通过Logstash的管道配置,在Elasticsearch(简称ES)间同步数据。...

2020-07-23 14:35:58 97

原创 elasticsearch

开源elasticsearch是一个基于lucene的实时分布式的搜索与分析引擎。特点及优势1.分布式的实时文件存储,每个字段都被索引并可搜索。2.分布式的实时分析搜索引擎插件IK Analyzer:IK Analyzer是一个开源的,基于Java语言开发的中文分词工具包。是开源社区中处理中文分词的热门插件。pinyin Analyzer:拼音分词器。Smart Chinese Analysis Plugin:Lucene默认的中文分词器。ICU Analysis plugin:Lucene

2020-07-23 12:08:45 184

原创 php 自定义异常捕捉

<?php// 用户自定义错误处理set_error_handler(function ($error_no, $error_msg, $error_file, $error_line) { switch ($error_no) { case E_WARNING: $level_tips = 'PHP Warning: '; break; case E_NOTICE: $level_ti

2020-07-03 11:10:18 325

原创 php运行模式

PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程:(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。(2)WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给 PHP引擎程序。(3)PHP引擎程序将会对WEB服务器传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态

2020-06-05 16:51:17 129

原创 单机用unix socket加速php-fpm、mysql、redis的连接

如果是单机服务,其实就不需要用IP哪怕是127.0.0.1这样的IP去连接mysql/redis/php了,因为即使是127.0.0.1也是要走TCP/IP层的。unix提供的unix socket来实现单机的端口访问,很多文章提到用unix socket可以提升连接速度。Mysql(PDO)启用unix socket的方法1.在PDO的DSN里面:原来写host:xxx,改成unix_socket:/var/run/mysqld/mysqld.sock (当然你可以在my.cnf里面设置成别的)r

2020-05-09 10:06:42 206

原创 mongodb 地理

创建方式:db.collection.ensureIndex({w:“2d”})插入数据:$near查询:查询距离某个点最近的点。$qeoWithin查询:查询某个形状内的点。矩形圆形多边形,最少要三边...

2020-04-30 15:50:57 164

原创 面试

1.nginx通信模块?Nginx Web服务器主要就是各种模块的工作。因此我们需要了解各种模块的大致功能及其分类。一、模块分类及其作用1、核心模块:HTTP模块、EVENT模块和MAIL模块等;HTTP 模块:用来发布http web服务网站的模块。event模块:用来处理nginx 访问请求,并进行回复。mail 模块 :负责邮箱处理和发布的。2、基础模块:HTTP Access...

2020-04-29 17:48:31 90

原创 mongodb php

mongodb 命令行连接/** 创建数据库 **/use DATABASE_NAME;/** 查看所有数据库 **/show dbs;/** 删除数据库 **/db.dropDatabase();/** 删除集合 **/db.collection.drop();/** 查看所有集合 **/show tables/** 创建集合 **/db.createCollecti...

2020-04-16 09:19:21 133

原创 centos 运维

统计已连接上的,状态为“establishednetstat -na|grep ESTABLISHED|wc -l统计httpd协议连接数ps -ef|grep httpd|wc -l各种连接状态数netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’查看linux的连接数,输出每个ip的连接数,以及总的...

2020-04-10 09:24:10 104

原创 fecmall

基于yii2框架开发的电商系统,扩展性强,安全性高,框架层面应对高并发部署, 适合用户搭建属于自己的小型,中型电商系统。开源电商系统,遵循BSD-3-Clause开源协议。Controller层只负责调度, Model只负责数据库映射,中间的处理逻辑由block来完成,View层 负责显示,这样各司其职, 以免造成controller文件过于庞大。加入独立功能块,有点类似Yii2的Widg...

2020-01-08 17:47:58 866

空空如也

空空如也

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

TA关注的人

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