自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GET 和 POST请求的本质区别是什么?原来我一直理解错了

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而

2021-01-30 09:45:36 138

原创 Hyperf 框架中,使用 gen:model 时生成模型时 decimal 转化成为 float问题,解决方案

Hyperf 框架中,当使用 gen:model 时,默认会将 decimal 转化成为 float。如下:## 数据库表SQL如下:CREATE TABLE `bill` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'AUTO_ID', `user_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户id', `type` tinyint(4) NOT NULL CO

2020-10-27 14:49:47 1381

原创 centos7.4编译安装swoole-4.5.5扩展步骤详解

安装准备安装前必须保证系统已经安装了下列软件php-7.1 或更高版本gcc-4.8 或更高版本makeautoconf[root@localhost ~]# php -versionPHP 7.3.23 (cli) (built: Oct 15 2020 21:43:17) ( NTS )Copyright (c) 1997-2018 The PHP GroupZend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies[

2020-10-16 14:20:22 835

原创 Redis缓存穿透、缓存击穿、缓存雪崩的原理和相关解决办法

缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。缓存雪崩:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(

2020-10-12 20:04:34 141

原创 Redis面试题精选36道, Redis面试必知必会

1、什么是 Redis?简述它的优缺点?Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单

2020-09-22 16:56:21 998

原创 MySQL数据库中常用的 count(字段) ,count(主键 id) ,count(1)和count(*)的区别

需要注意的是,下面的讨论还是基于加粗样式 InnoDB 引擎的。这里,首先你要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。所以,count(*)、count(主键 id) 和 count(1) 都表示返回满足条件的结果集的总行数;而 count(字段),则表示返回满足条件的数据行里面,参数“字段”不为 NULL 的总个数。至于分析性能差别的时候,你可以记住这么几个

2020-09-22 15:22:11 394

原创 PHP数据对象 PDO属性设置

PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据设置PDO在处理数据的过程中采用什么方式去处理PDO::setAttribute:设置属性PDO::getAttribute:获取属性语法:bool PDO::setAttribute ( int $attribute , mixed $value )设置数据库句柄属性。下面列出了一些可用的通用属性;有些驱

2020-09-21 12:00:14 245

原创 Phalcon框架数据查询时所有类型都默认转为string类型,解决方法

最近项目开发选用的框架为phalcon框架, 查询mysql返回字段整型变为String型解, 例如id,time在数据库中是Int的,查询后返回是String型。对于php这种弱类型的语言,影响不大。在做API返回数据时,如果类型与数据库不一致,对于java和Objective C这些强类型,影响就很大了。解决方法:需要添加如下两个配置即可 PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_STRINGIFY_FETCHES => fals

2020-09-21 11:44:17 233

原创 【PHP常见面试题】 垃圾回收机制-写时复制和引用计数

写入拷贝(Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时要求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy

2020-09-16 14:25:46 533

原创 开发常用- PHP操作一维数组处理成树形结构

在我们做项目时,我们有时需要树形结构的数据进行数据的树形层级展示,或者需要把返回的数据结构数据进行拆解成单层数组形式。下面我们就来总结下这两种方法。数组转树形结构: /** * Notes: 将一维数组处理成树形结构 * Author: Jason <1372239266@qq.com> * Time: 2020/9/12 15:54 * @param array $items 一维数组 * @param string $idName

2020-09-12 16:19:25 689

原创 强烈推荐 - PHP图片压缩类, 超低耗损 ,极大的保持原图的清晰度

<?php/** * 图片压缩类:通过缩放来压缩。 * 如果要保持源图比例,把参数$percent保持为1即可。 * 即使原比例压缩,也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例,则体积会更小。 * 结果:可保存、可直接显示。 * * @Author: Jenson Harris * @Date: 2019-06-05 16:27:24 * @Last Modified by: Jenson Harris * @Last Modified tim

2020-09-12 15:49:05 457

原创 Cookie 和 Session 的区别?90%的程序员都没有完全回答对

面试的时候我想很多朋友会经常遇到这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。但如果再往深入探讨的话,就慢慢有一些朋友不太了解了,谈起原理时就很少有朋友全部回答准确。今天和大家一起深入聊聊有关 Cookie 和 Session 的话题 。第一层楼什么是 Cookie 和 Session ?初级程序员高频面试题。什么是 CookieHTTP Cookie(也叫 Web Cookie或浏

2020-09-11 10:04:27 151

原创 Mysql优化:一次SQL查询优化过程原理分析(2600W+数据 , 从55s 优化到300ms)

有一张财务流水表,未分库分表,目前的数据量为 26227264,分页查询使用到了limit,优化之前的查询耗时55 s 690 ms ,按照下文的方式调整SQL后,耗时300 ms;操作: 查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理: 减少回表操作;-- 优化前SQLSELECT 各种字段FROM `table_name`WHERE 各种条件LIMIT 0,10;-- 优化后SQLSELECT 各种字段FROM `table

2020-09-09 15:06:30 148

原创 redis基本操作命令总结

redis基本操作命令redis的30个基本操作命令1,connect描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE示例代码如下:<?php$redis = new redis();$result = $redis->connect('127.0.0.1', 6379);var_dump($result); //结果:bool(true)2,set描述:设置key和value的

2020-09-08 14:15:01 272

原创 常见Redis面试题分享 (30道)

1、什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因

2020-09-08 14:12:24 187

原创 MySQL数据库常见面试题总结(50道题含答案解析)

1、MySQL 中有哪几种锁?(1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。(2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。(3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。2、MySQL 中有哪些不同的表格?共有 5 种类型的表格:(1)MyISAM(2)Heap(3)Merge(4)INNODB(5)ISAM3、简述在 MySQL 数据库中

2020-09-08 09:57:22 1870

原创 RESTful API 设计指南总结

REST简介REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简

2020-09-07 19:21:12 187

原创 开发常用- PHPStorm开发常用快捷键总结

本章给大家介绍一些关于Phpstrom常用快捷键的使用,对我们那些日常使用Phpstrom开发工具的小伙伴们非常实用,下面我来给大家介绍一下吧。1 . 从版本控制系统创建项目:CVS -> Checkout from Version Control2 .关联DOC文档:右键External Librariese -> Configure PHP include paths3 .去掉波浪线:settings -> Editor -> Colors & Fonts

2020-09-07 18:12:01 210

原创 Git 常用命令清单总结

常用 Git 命令清单一般来说,日常开发中使用Git只要记住下图6个命令,就可以了。如果想熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]二、配置Git的设置文件为**.gitconfig**,它可以

2020-09-07 17:40:26 94

原创 MySQL事务隔离级别和数据库锁的总结

Mysql锁锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。不少人在开发的时候,应该很少会注意到这些锁的问题,也很少会给程序加锁(除了库存这些对数量准确性要求极高的情况下),一般也就听说过常说的乐观锁和悲观锁,了解过基本含义。其实即使我们不会这些锁的知识,我们的程序在一般情况下还是可以跑的

2020-09-07 16:16:26 267

原创 CentOS7使用yum 安装Mysql5.7

CentOS7使用yum 安装Mysql5.7安装环境:CentOS7 64位 MINI版,安装MySQL5.71、配置yum源# 下载mysql源安装包[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm#如果出现 -bash: wget: 未找到命令 则证明wget没有安装则执行下面命令[root@localhost ~]# yum -y install wge

2020-09-07 11:47:47 160

原创 TinkPHP5自定义验证类

TinkPHP5自定义验证类本文主要介绍thinkPHP5框架自定义验证器实现方法,结合实例形式分析了thinkPHP自定义验证器的具体定义与使用方法,首先我们在要使用验证类的模块目录下建立validata文件夹,我这里在后台的admin模块下建立的,然后validata文件夹下建立一个类User类继承Validate类,取名为User.php,在User.php类中引入use think\Validate; 命名空间,如下所示:<?php/** * @Notes 自定义user验证类

2020-09-07 11:36:07 160

2021全国省市区最新城市编码SQL

全国地图城市编码对照表,很全的编码,全国所有城市编码,便于后台、前端、app开发,配置

2021-03-11

空空如也

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

TA关注的人

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