自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx 常用优化配置项教程

我们部署 web 网站时都会将静态文件一起打包,跟随项目部署到服务某个目录,一般我们都会把这些文件放到项目根目录的 static 目录下,这些文件是大概率不会有太大变动的。相同的两个请求,则可以被看做是同源的,但如果其中任意一点存在不同,则代表是两个不同源的请求,同源策略会限制了不同源之间的资源交互。web 开发中经常会遇到一些文件的上传下载,文件小的时候没啥问题,正常处理,但是当文件大传输时往往都会会出现一些。,为了保证用户信息安全,防止恶意网站窃取数据,同源策略是必须的,否则。

2023-11-02 15:58:25 207

原创 Redis慢查询日志(slowlog)

111

2022-10-21 22:12:31 5182 1

原创 window.open 前端下载文件,被拦截 或者显示无法安全下载问题

openWin: function(url) { $('body').append($('<a href="'+url+'" id="openWin" target="_blank"></a>')) document.getElementById("openWin").click();//点击事件 $('#openWin').remove(); },把 window.open(url) 换成以上方法正常情况下是可以用的...

2022-04-15 17:40:29 4356

原创 composer使用注意

1,内存不够时,前面加上: COMPOSER_MEMORY_LIMIT=-12,如果在windows上运行,提示缺少PHP extension pcntl扩展,后面加上 --ignore-platform-reqs

2022-02-28 22:22:33 99

原创 为什么重复值高的字段不能建索引(+聚集索引和非聚集索引)

一、原因:-非聚簇索引存储了对主键的引用,如果select字段不在非聚簇索引内,就需要跳到主键索引。-如果非聚簇索引值重复率高,那么查询时就会大量出现上图中从右边跳到左边的情况,导致整个流程很慢原因就是上面的。数据库中聚集索引只有一个,默认主键。其他用户创建的索引都是非聚集索引。非聚集索引存储了对主键的引用,即通过索引确定叶子节点之后,还需要再次根据主键去查询数据。(所以会查询两次)如果非聚集索引重复率高(即一个同样的值有多个主键),那么首先你会从索引中取一半主键值,然后根据主键值再...

2022-02-24 22:13:00 2951 1

原创 关于nginx中proxy_set_header的设置

昨天一个开发找我帮忙配置一个nginx的转发,本来很容易的配置,但是坑了我好久才解决。。。需求大致是:nginx上配有aaa.example.com的虚拟主机,现在需要将访问http://aaa.example.com/api/x.x/client/的请求转到http://bbb.example.com/api/x.x/client/,bbb.example.com的虚拟主机在另外一台nginx上,其中x.x表示位数不定的版本号,如:1.0或1.20.345都可能。请求转过去要求url保持不变用

2021-12-20 16:23:04 10367

原创 Linux IO模式及 select、poll、epoll详解

同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于

2021-10-12 20:00:00 215

原创 进程地址空间与虚拟存储空间

早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存 的呢?下面通过实例来说明当时的内存分配方法:某台计算机总的内存大小是128M,现在同时运行两个程序A和B,A需占用内存10M,B需占用内存110。计算机在...

2021-10-11 17:56:02 443

原创 lua pairs顺序遍历 table(key必须为连续数值)

Lua常用的4中遍历方式for key, value in pairs(tbtest) do XXX end 这样的遍历顺序并非是tbtest中table的排列顺序,而是根据tbtest中key的hash值排列的顺序来遍历的。for key, value in ipairs(tbtest) do XXX end 这样的循环必须要求tbtest中的key为顺序的,而且必须是从1开始,ipairs只会从1开始按连续的key顺序遍历到k...

2021-06-21 16:35:29 2433

原创 lua module 函数

lua5.1之后增加了module函数,本文通过一系列测试代码来阐述这个函数的作用通常情况下,我们调用另一个Lua代码文件一般都会使用require函数,比如:--JCTest.lua文件JCTest = {}function JCTest:Func1() print("Func1")endfunction Func2() print("Func2")endreturn JCTest--调用main.lua中local jctest = requi...

2021-03-11 17:49:37 327

原创 git push 强制推送

git push强制推送到远程代码git reset --hard IDgit push -f (gitpush-f-uorigindevelop)git pull 强制覆盖本地的代码git pull 强制覆盖本地的代码方式,下面是正确的方法:git fetch --all然后,你有两个选择:git reset --hard origin/master或者如果你在其他分支上:git reset --hard origin/<branch_name>说...

2021-01-30 18:00:51 17138

原创 白话布隆过滤器BloomFilter

通过本文将了解到以下内容: 查找问题的一般思路 布隆过滤器的基本原理 布隆过滤器的典型应用 布隆过滤器的工程实现 场景说明:本文阐述的场景均为普通单机服务器、并非分布式大数据平台,因为在大数据平台下问题就是另外一种考虑方式了,因此本文只描述贫穷落后一穷二白的场景,俨然有种60年代先辈们在戈壁攻克原子弹的感觉。1.查找问题的一般思路查找问题是出现频率极高的问题,来看一道面试题:给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存.

2020-12-11 20:24:52 244

原创 redis自述:年轻MySQL不讲武德,耗子尾汁

前言欢迎各位进群973961276一起聊聊技术吹吹牛,每周都会有几次抽奖送专业书籍的活动,奖品虽不甚值钱,但也算个彩头不是我是Redis你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。说起我的诞生,跟关系数据库MySQL还挺有渊源的。在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也随之暴涨,而每一个用户请求都变成了对它的一个又一个读写操作,MySQL是苦不堪言。尤其是到“双11”、“618“这种全民购物.

2020-12-08 15:04:18 185

原创 进程间的五种通信方式介绍-详解

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC 的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams 等。其中 Socket 和 Streams 支持不同主机上的两个进程 IPC。以 Linux 中的 C 语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统 IPC 最古老的形式。1、特点: 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。

2020-11-24 15:22:17 1798 1

原创 什么是LRU(最近最少使用)算法?

一、什么是LRU? LRU(Least Recently Used),最近最少使用。 是一种【内存管理】算法。 LRU算法基于一种假设: 长期不被使用的数据,在未来被用到的几率也不大。因此,当数据所占内存达到一定阈值时,要移除掉最近最少使用的数据。 LRU算法使用了一种有趣的数据结构,叫做【哈希链表】二、什么是【哈希链表】呢? 1)【哈希表】是由若干个【Key-Value】所组成的。 ...

2020-11-24 15:21:15 14460 3

原创 Linux安装MySQL5.7

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql创建mysql用户组和用户并修改权限 groupadd mysql useradd ...

2020-11-13 19:51:52 133

原创 进阶的Redis之哈希分片原理与集群实战

前面介绍了《进阶的Redis之数据持久化RDB与AOF》和《进阶的Redis之Sentinel原理及实战》,这次来了解下Redis的集群功能,以及其中哈希分片原理。集群分片模式如果Redis只用复制功能做主从,那么当数据量巨大的情况下,单机情况下可能已经承受不下一份数据,更不用说是主从都要各自保存一份完整的数据。在这种情况下,数据分片是一个非常好的解决办法。Redis的Cluster正是用于解决该问题。它主要提供两个功能:自动对数据分片,落到各个节点上 即使集群部分节点失效或者连接不上,依

2020-10-23 18:20:12 190

原创 mysql踩坑记录之limit和sum函数混合使用问题

前言今天同事在同步完订单数据后,由于订单总金额和数据源的总金额存在差异,选择使用LIMIT和SUM()函数计算当前分页的总金额来和对方比较特定订单的总金额,却发现计算出来的金额并不是分页的订单总金额,而是所有订单的总金额。数据库版本为mysql 5.7,下面会用一个示例复盘遇到的问题。问题复盘本次复盘会用一个很简单的订单表作为示例。数据准备订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID)CREATE TABLE `order` (

2020-10-12 19:57:55 570

原创 ssh远程执行nohup命令不退出

Linux系统下,使用默认用户root。远程target机器的主目录下有个脚本test.sh,可执行权限,内容只有一条命令:sleep 10在本地机器上执行ssh target "nohup ./test.sh &",结果ssh不立即退出,等test.sh执行完毕之后才退出。一般我们使用nohup命令是为了在断开到某个服务器的ssh连接之后,之前执行的命令仍然正常地在服务器运行。但是前面的现象其实与nohup命令没有什么关系,只是ssh本身的问题;nohup其作用的前提是用户使用ssh登录到服.

2020-09-27 19:26:15 808 1

原创 nginx优化单台机器抗10万并发

nginx的安装与基本配置文档网上已经有很多了,但具体讲优化的文章还比较少,偶尔发现有这么一篇《nginx优化 突破十万并发》仔细拜读后,转至此做以收藏,感谢原作的辛苦编写。一般来说nginx配置文件中对优化比较有作用的为以下几项:worker_processes 8;nginx进程数,建议按照cpu数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 1

2020-09-14 15:29:42 1727

原创 php-fpm的重启方法

启动php-fpm:/Data/apps/php7/sbin/php-fpm(这是源码包凡事安装的)php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /Data/apps/php7/sbin/php-fpm(start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:master进程可以理解以下信号INT, TERM 立刻终止QUIT 平滑终止USR1 重新打开日志文件USR2 平滑重载所有worker进程并重新载入配置和二进

2020-09-08 11:21:14 649

原创 nginx配置跨域问题

nginx配置跨域问题 No 'Access-Control-Allow-Origin' header is present on the requested resource1.跨域指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。2.浏览器在执行脚本的时候,都会检查这个脚本属于哪个页面,即检查是否同源,只有同源的脚本才会被执行;而非同源的脚本在请求数据的时候,浏览器会报一个异常,提示拒绝访问。  ①、http://www.

2020-08-28 17:52:17 924

原创 多进程、多线程、多协程在并发处理上各有什么优缺点

多任务:计算机的核心是CPU,承担了所有的计算任务。一个CPU在一个时间切片里只能运行一个程序。多任务的目的:提升程序的执行效率,更充分利用cpu的资源并行:当任务数小于或者等于cpu核数时,每一个任务都有对应的cpu来处理执行,即任务真的是一起执行的并发:当任务数多于cpu核数,通过操作系统的各种任务调度算法,实现用多个任务串行执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去像一起执行而已)运行的程序即进程,进程包含线程(>=1),线程包含协程(>=1)

2020-07-16 09:31:30 806 1

原创 php迭代器

php提供了一个语法结构用于遍历数组和对象foreach遍历数组用法1 <php2 //定义一个数组3 $arr = array("1","2","3","4","5");4 //用foreach遍历5 foreach($arr as $key => $value){6 echo '键名:'.$key.'键值:'.$value."<br>";7 }8 ?> 输出结果:键名:0键值:1键名:1键值:2键名:2键值:3键名:3

2020-07-16 00:17:18 251

原创 PHP标准库(PHP SPL)详解

什么是SPL?SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟。SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置。似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻。究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」。SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海底。而现在它应该被我们捞起,并将它穿戴在应有的位置 ,而这也是这篇文章所要表述的观点。那么

2020-06-29 10:49:45 403

原创 HTTPS 简单介绍

通信安全,肯定需要用 https,那么 https 咋工作的,简单整理一下:服务器将自己的证书发送给客户端; 客户端通过层层 CA 验证证书是真的,从证书里面拿出来服务器的公钥; 客户端通过服务器公钥将一个随机数发送给服务器; 服务器通过自己的私钥解密得到随机数,这样客户端和服务器都能通过这个随机出算出一个对称秘钥; 之后双方通过对称秘钥加密数据进行通信。简单的过程是这样,通过非对称加密的方式来传输一个对称加密的秘钥,最终通过对称秘钥进行数据加密,这样能保证传输的效率。这里关键的一步就是服

2020-06-29 10:47:11 115

原创 设计模式之SOLID原则

介绍设计模式中的SOLID原则,分别是单一原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。前辈们总结出来的,遵循五大原则可以使程序解决紧耦合,更加健壮。SRP 单一责任原则 OCP 开放封闭原则 LSP 里氏替换原则 ISP 接口隔离原则 DIP 依赖倒置原则 单一责任原则指的是一个类或者一个方法只做一件事。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化就可能抑制或者削弱这个类完成其他职责的能力。例如餐厅服务员负责

2020-06-12 15:20:15 205

原创 PHP7.0常量const修饰符syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE)

错误代码语法解析错误: syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE)代码class Psr16Cache implements CacheInterface, PruneableInterface, ResettableInterface{ use ProxyTrait; private const METADATA_EXPIRY_OFFSET = 1527506...

2020-05-13 20:15:37 2024

原创 一个ip多个站点无法访问问题

需要阿里云打开相应端口,在安全组里配置

2020-05-07 15:24:24 245

原创 nohup命令 挂起后台运行程序(窗口关闭也不会停止程序的运行)

在一些程序中,即使你用了nohup python train.py >run.log 2>&1&当你关闭窗口的时候,后台程序依然会被关掉,经过多方查证造成这一现象的原因是没有正确退出!按照下方步骤即可成功挂在后台。​​​​​nohup python train.py >run.log 2>&1&回车输入exit命令退出终端...

2020-04-30 14:08:22 1664

原创 linux编译安装php

1,安装php(1)先安装如下依赖包$yum install -y gcc gcc-c++ autoconf make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-...

2020-04-02 22:11:17 437

原创 linux的操作注意事项

1,linux下运行文件要加./ ,原因是可执行文件的目录没有包含在环境变量PATH中,linux系统只会搜索PATH变量。而windows下却可以是因为系统会搜索PATH变量和当前目录。...

2020-04-02 20:22:37 242

原创 mysql 中select for update 锁表的范围备注

mysql的锁表范围测试1.主键明确时,行级锁:  解释:指定主键并且数据存在时,仅锁定指定的行,其它行可以进行操作  实例:指定了锁定id=1的行且数据存在①,在更新1时lock wait超时②,但是更新id不为1的项目时可以直接更新③,释放锁后④,可以任意更新⑤2.主键不明确时,表级锁:  解释:指定主键不明确或者数据不存在时,整表锁定  指定主键不明确包括使...

2020-04-01 23:10:49 374

原创 mysql 的读写锁与并发控制

1.无论何时只要有多个查询在同一时刻修改数据,都会产生并发控制的问题2.讨论mysql在两个层面,服务器层和存储引擎层,如何并发控制读写3.举了个mbox邮箱文件的例子,说如果有多个进程同时对mbox文件写东西,那么在文件的末尾会,交叉混乱的添加,比如进程1写了几行,进程2也写了几行,互相交叉,数据就是错误的了.设计良好的mbox需要加锁,比如进程1锁住了文件,进程2必须等待进程1结束,锁...

2020-03-24 18:51:36 120

原创 mysql索引的注意事项

1,复合索引遵循最左前缀原则2,like查询,%不能在前,否则索引无效,可以使用全文检索引擎,spinx,es3,column is null 可以使用索引4,如果mysql估计使用索引比全表扫描慢,会放弃使用索引5,如果or前的条件中的列有索引,后面的没有,索引都不会被用到6,列类型是字符串类型,查询时一定要给值加引号,否则索引失效...

2020-03-22 23:32:01 135

原创 php基础知识整理6:正则表达式

1,正则表达式的作用:分割、查找、匹配、替换字符串2,分隔符:正斜线(/),hash符号(#),以及取反符号(~)3,通用原子:\d(0-9), \D(除了0~9),\w(数字字母下划线), \W(除了数字字母下划线), \s(空格),\S(除了空格)4,元字符:. 除了换行符 * 出现0,1,多次 ...

2020-03-22 13:48:45 276

原创 php基础知识整理5:静态变量

static 关键字1,仅初始化一次,2,初始化时需要赋值3,每次执行函数该值会保留4,static修饰的变量是局部的,仅在函数内部有效5,可以记录函数的调用次数,从而可以在某些条件下终止递归...

2020-03-22 12:26:50 79

原创 php基础知识整理4:运算符

顺序:递增/递减 > ! > 算数运算符 > 大小比较 > 相等比较 > 引用 > 位运算符(^) > 位运算符(|) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and >xor > or 比较运算符: ==和===区别: 等值判断(false的七种情况...

2020-03-21 15:36:41 79

原创 php基础知识整理3:常量

定义:const,define const更快,是语言结构,define是函数 define不能定义类的常量,const可以 常量一经定义,不可以被修改和删除预定义常量: __FILE__:文件的路径名和文件的名称 __KINE__: 所在行的行号 __DIR__: 所在目录 __FUNCTION__:所在的函数体的函数名称 __...

2020-03-21 14:27:20 73

原创 php基础知识整理2:php数据类型

三大数据类型(标量:整形、浮点型、字符串、布尔型,复合:数组、对象,特殊:null、resource(资源))1,浮点型: 浮点类型不能用于比较类型当中 $a=0.1;$b=0.7; $a+$b =0.799999,不等于 0.82,布尔类型: false的七种情况:0,0.0...

2020-03-21 14:15:56 171

空空如也

空空如也

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

TA关注的人

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