自定义博客皮肤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)
  • 收藏
  • 关注

原创 php多进程模拟并发事务产生的问题,可学习参考

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询(1)通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令:1) show varia...

2019-11-28 22:24:17 315

原创 php多进程模拟并发事务产生的问题,可学习参考

用实例代码给大家介绍关于php多进程模拟并发事务产生的一些问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧数据表drop table if exists `test`;create table if not exists `test` ( id int not null auto_increment , count int default 0 , prim...

2019-11-28 22:23:11 94

原创 学会这 2 点,轻松看懂 MySQL 慢查询日志

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询(1)通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令:1) show varia...

2019-11-28 22:20:42 247

原创 php中Session使用方法详解

Session的声明与使用Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。session_start()函数的语法格式如下:  Bool session_start(void) //创建Session,开始一个会话,进行Session初始化注意:session_start()函数之前不能有任何输出当第一次访问网站时,See...

2019-11-28 21:57:16 259

原创 写PHP代码的时候,什么是闭包和匿名函数?

闭包是指在创建时封装周围状态的函数。即使闭包所在的环境不存在了,闭包中封装的状态依然存在。匿名函数就是没有名称的函数。匿名函数可以赋值给变量,还能像其他任何PHP对象那样传递。不过匿名函数仍是函数,因此可以调用,还可以传入参数。匿名函数特别适合作为函数或方法的回调。注意:理论上讲,闭包和匿名函数是不同的概念。不过,PHP将其视作相同的概念。所以,我们提到闭包时,指的也是匿名函数,反之亦然。...

2019-11-28 20:18:39 104

原创 PHP基于Redis实现轻量级延迟队列

延迟队列,顾名思义它是一种带有延迟功能的消息队列。 那么,是在什么场景下我才需要这样的队列呢?一、背景先看看一下业务场景:1.会员过期前3天发送召回通知 2.订单支付成功后,5分钟后检测下游环节是否都正常,比如用户购买会员后,各种会员状态是否都设置成功 3.如何定期检查处于退款状态的订单是否已经退款成功? 4.实现通知失败,1,3,5,7分钟重复通知,直到对方回复?通常解决以上...

2019-11-28 16:53:43 616

原创 PHP实现购物车的思路和源码分析

这里主要是记录下自己的购物车的思路,具体功能实现,但是尚未在实际项目中用到,不对之处欢迎指正项目中需要添加购物车。目录说明buy.php 点击购买之后的操作car.php 购物车,显示购买的东西conn.php 数据库连接参数delete.php 删除商品index.php 入口文件shop.sql 数据库sql文件test.png ...

2019-11-27 21:29:13 514

原创 记录用户登陆信息,你用PHP是如何来实现的

对于初入门的PHP新手来说,或许有一定的难度。建议大家先看看PHP中session的基础含义,需要的朋友可以选择参考。下面我们就通过具体的代码示例,为大家详细的介绍PHP中session实现记录用户登录信息的具体方法。1.简单的登录界面代码示例:login.html<!DOCTYPE html><html><head> <meta ...

2019-11-27 16:26:33 514

原创 Redis的各项功能解决了哪些问题?

先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。它还内建了复制,lua脚本,LR...

2019-11-26 22:00:23 95

原创 Redis的面试问题总结,面试跳槽必备

1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Va...

2019-11-26 21:04:25 116

原创 学会这 2 点,轻松看懂 MySQL 慢查询日志

作者:PHP进阶架构师链接:https://zhuanlan.zhihu.com/p/93759245来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询...

2019-11-26 16:59:50 266

原创 Composer依赖管理 – PHP的利器

作者:PHP架构师圈子链接:https://zhuanlan.zhihu.com/p/93563181来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。别再到处搜PHP类扩展包了,对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。PHP 的则是 PEAR,不过 PEA...

2019-11-25 22:07:51 198

原创 PHP程序执行的过程原理

为了以后能开发PHP扩展,就一定要了解PHP的执行顺序。这篇文章就是为C开发PHP扩展做铺垫。Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个mod_php5.so的模块。Apache加载这个模块,在url访问.php文件的时候,就会转给mod_php5.so模块来处理。这个就是我们常说的SAPI。英文名字是:Server ...

2019-11-25 16:32:03 432

原创 PHP的闭包和匿名函数你用过嘛

闭包是指在创建时封装周围状态的函数。即使闭包所在的环境不存在了,闭包中封装的状态依然存在。匿名函数就是没有名称的函数。匿名函数可以赋值给变量,还能像其他任何PHP对象那样传递。不过匿名函数仍是函数,因此可以调用,还可以传入参数。匿名函数特别适合作为函数或方法的回调。注意:理论上讲,闭包和匿名函数是不同的概念。不过,PHP将其视作相同的概念。所以,我们提到闭包时,指的也是匿名函数,反之亦然。...

2019-11-25 14:19:50 96

原创 缓存穿透,缓存击穿,缓存雪崩解决方案分析

一:前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。二:缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。...

2019-11-25 13:55:19 164

原创 Redis的各项功能解决了哪些问题

先看一下Redis是一个什么东西。官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。它还内建了复制,lua脚本,LRU,事...

2019-11-23 20:18:13 106

原创 基于 Swoole 的微信扫码登录

随着微信的普及,扫码登录方式越来越被现在的应用所使用。它因为不用去记住密码,只要有微信号即可方便快捷登录。微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实现。这里基于微信公众平台的带参数临时二维码,并且结合 Swoole 的 WebSocket 服务实现扫码登录。大体流程如下:客户端打开登录界面,连接到 WebSocket 服务 WebScoke...

2019-11-23 17:20:57 202

原创 用Swoole+React 实现的聊天室

前后端分离的项目,使用 Swoole+React 实现的聊天室,整个项目的框架结构可以进行参考,前端 react+react-redux+react-router+react-ant 等等,后台使用 easySwoole,自行实现中间件(数据封装,token 验证,签名验证), 认真看代码可以学到很多哦,?!1. 项目链接1.1 swoole(请 star)https://git...

2019-11-23 16:14:51 205

原创 实现websocket 主动消息推送,用laravel+Swoole

近来有个需求:想实现一个可以主动触发消息推送的功能,这个可以实现向模板消息那个,给予所有成员发送自定义消息,而不需要通过客户端发送消息,服务端上message中监听传送的消息进行做相对于的业务逻辑。主动消息推送实现平常我们采用 swoole 来写 WebSocket 服务可能最多的用到的是open,message,close这三个监听状态,但是万万没有看下下面的onRequest回调的使...

2019-11-23 14:27:50 1014

原创 PHP7带来了哪些重要的变化

PHP7带来的新东西1.类型的声明。可以使用字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool),来声明函数的参数类型与函数返回值。declare(strict_types=1);function add(int $a, int $b): int { return $a+$b;}echo add(1, 2);echo ad...

2019-11-22 21:36:58 187

原创 PHP 核心特性 - 匿名函数

提出在匿名函数出现之前,所有的函数都需要先命名才能使用function increment($value){ return $value + 1;}array_map('increment', [1, 2, 3]);有的时候函数可能只需要使用一次,这时候使用匿名函数会使得代码更加简洁直观,同时也避免了函数在其他地方被使用array_map(function($v...

2019-11-22 17:21:36 238

原创 PHP 核心 - 异常处理

错误与异常在 PHP 7 之前,错误处理和异常处理是分开的。try { $a = 5 % 0;} catch (Exception $e) { echo $e->getMessage(); $a = -1; // 通过异常来处理 $a 为 0 的情况,但是实际上,捕获不到该异常}echo $a; // 无法执行PHP 7 开始,错误也可以像异...

2019-11-22 17:00:15 190

原创 Swoole协程与Go协程的区别,很详细,很牛逼

进程、线程、协程的概念进程是什么?进程就是应用程序的启动实例。例如:打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源,数据资源,独立的内存空间。线程是什么?线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程有两种调度策略,一是:分时调度,二是:抢占式调度。协程是什么?协程是轻量级线程, 协程的创建、切换、挂起、销毁全部为内存...

2019-11-22 16:11:27 1794

原创 PHP操作Redis数据库常用方法

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);要让php能用上redis,首先就得安装redis扩展。1.安装redisgit下载地址htt...

2019-11-22 15:58:35 395

原创 PHP 开发工程师基础篇 - PHP 数组

数组 (Array)数组是 PHP 中最重要的数据类型,可以说是掌握数组,基本上 PHP 一大半问题都可以解决. PHP 数组与其他编程语言数组概念不一样。其他编程语言数组是由相同类型的元素(element)的集合所组成的数据结构,而 PHP 数组元素可以为不同类型的元素。因此说 PHP 数组不是纯粹的数组,而是哈希 (字典) 更为恰当.PHP 数组可以当作真正的数组,或列表(向量),散列表...

2019-11-21 17:28:07 167

原创 php+redis实现注册、删除、编辑、分页、登录、关注等功能

本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:主要界面连接redisredis.php<?php //实例化 $redis = new Redis(); //连接服务器 $a=$redis->connect("localhost",6379); //var_dump($a);...

2019-11-21 15:55:36 380

原创 php Swoole实现毫秒级定时任务

项目开发中,如果有定时任务的业务要求,我们会使用linux的crontab来解决,但是它的最小粒度是分钟级别,如果要求粒度是秒级别的,甚至毫秒级别的,crontab就无法满足,值得庆幸的是swoole提供的强大的毫秒定时器。应用场景举例我们可能会遇到这样的场景:场景一:每隔30秒获取一次本机内存使用率 场景二:2分钟后执行报表发送任务 场景三:每天凌晨2点钟定时请求第三方接口,如果...

2019-11-21 14:40:36 1117

原创 php—Swoole和Redis实现的并发队列处理系统

由于PHP不支持多线程,但是作为一个完善的系统,有很多操作都是需要异步完成的。为了完成这些异步操作,我们做了一个基于Redis队列任务系统。大家知道,一个消息队列处理系统主要分为两大部分:消费者和生产者。在我们的系统中,主系统作为生产者,任务系统作为消费者。具体的工作流程如下:1、主系统将需要需要处理的任务名称+任务参数push到队列中。2、任务系统实时的对任务队列进...

2019-11-21 14:04:29 431

原创 PHP实现微信提现功能

提现必须得用双向证书、所以大家一定要在微信的商户平台找到相应的地方去设置、因为做这个提现已经有一段时间了、所以设置微信商户平台的那几个地方没有图的情况、也说不清楚、下次再做提现的时候、给大家分享如何设置商户平台那几个地方、不是很难、下面贴代码注意事项:商户打款时是从商户可用余额中减钱,所以确保商户可用余额充足,同时注意官方文档中的付款规则;封装提现的方法function tix...

2019-11-20 21:07:08 751

原创 PHP——Redis 基础学习

启动启动:redis-server.exe redis.windows.conf/redis-server 连接:redis-cli.exe -h 127.0.0.1 -p 6379redis 命令启动客户端后利用 redis-cli 连接本地服务 ping 检测 redis 服务是否启动 执行远程 redis 服务:redis-cli -h host -p port -a pas...

2019-11-20 17:29:55 150

原创 用PHP+Redis实现延迟任务,实现自动取消订单

简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) 需要注意此功能是在redis 2.8版本以后推出的,因此你服务器上的reids最少要是2.8版本以上;(A)业务场景:1、当一个业务触发以后需要启动一个定时任务,在指定时间内再去执行一个任务(如自动取消订单,自动完成订单等功能)2、redis的keyspace notifica...

2019-11-20 16:30:13 200

原创 2019年PHP最新面试题(含答案)

1. 数据库设计经验,为什么进行分表?分库?一般多少数据量开始分表?分库?分库分表的目的?什么是数据库垂直拆分?水平拆分?分区等等一:为什么要分表当一张表的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞...

2019-11-19 21:36:57 1798

原创 使用 Casbin 作为 ThinkPHP 的权限控制中间件

PHP-Casbin是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。Think-Casbin是一个专为 ThinkPHP5.1 定制的 Casbin 的扩展包,使开发者更便捷的在 thinkphp 项目中使用 Casbin。安装创建 thinkphp 项目(如果没有):composer create-project topthink/think...

2019-11-19 21:12:02 605

原创 Laravel + Vuejs + Tailwind CSS 构建一个 Todo App 第一部分

今天,我们通过 Vue.js,Laravel 以及 Tailwind 构建一个简单的 todo 应用。为了节约时间,我们不提供任何的数据交互。但是不要担心,接下来的第二部分将会更加的精彩。开发准备首先,我们通过 Laravel CLI 在需要添加项目的目录中运行 laravel new <自定义工程名> 来构建一个项目。Laravel CLI 可以帮我们完成我们所需的 L...

2019-11-19 19:41:15 312

原创 PHP队列的实现详细操作步骤

队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作;而在表的后端,可以称之为rear进行插入操作。队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循“先进先出”原则,而堆栈遵循的是“先进后出”原则。队列进行插入操作的端称为队尾,进行删除操作的称为队头,只允许在队尾进行插入操作,在队头进行删除操作。队列的数据元素又称为队列元素,在队尾中插入一个...

2019-11-19 16:48:38 288

原创 php Laravel生命周期与原理

一旦用户(浏览器)发送了一个HTTP请求,我们的apache或者nginx一般都转到index.php,因此,之后的一系列步骤都是从index.php开始的,我们先来看一看这个文件代码。<?phprequire __DIR__.'/../bootstrap/autoload.php';$app = require_once __DIR__.'/../bootstrap/app...

2019-11-19 16:04:49 130

原创 PHP程序员内功心法-常用工具

三连问经常有社区的同学问: “我的PHP程序有没有阻塞,我的PHP程序有没有开启协程(对自己写好的代码表示不自信),我的PHP程序有没有问题”.然后贴出了自己的程序,然后进入了愉快的灌水环节,随着时间的流逝,我们并没有形成系统的解决方法.求人不如求己,我们自己来解决这些问题.方法论最近接触到一个牛X的名词-方法论.引用了百度百科一段名词解释方法论,就是关于人们认识世界、改造世界的...

2019-11-19 14:59:16 584 1

原创 PHP实现微信企业付款到个人零钱步骤

微信支付企业付款到零钱功能应用广泛,比如微信红包奖励,业务结算等。通过企业向个人付款,付款资金将直接进入用户微信零钱。一 开通条件付款资金企业付款到零钱资金使用商户号余额资金。根据商户号的账户开通情况,实际出款账户有做区别:◆ 默认情况下,企业付款到零钱使用商户号基本户(或余额账户)余额。如商户号已开通运营账户,则企业付款到零钱使用运营账户内的资金。◆ 基本户(或...

2019-11-18 21:58:21 901

原创 PHP Laravel5实现的RBAC权限管理操作示例

根据不同的权限,在菜单栏显示不同的功能,只对菜单进行了限制,若对路由也进行限制,可以根据菜单的例子,请自行完善,开发。下面请认真学习一下laravel的RBAC设计1、建表(用户表、角色表、权限表、用户角色表、角色权限表)CREATE TABLE IF NOT EXISTS mr_role(id int(11) PRIMARY KEY AUTO_INCREMENT COMMEN...

2019-11-18 15:28:03 378

原创 php内存管理机制与垃圾回收机制

一、内存管理机制先看一段代码:<?php//内存管理机制var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存$a = "laruence";var_dump(memory_get_usage());unset($a);var_dump(memory_get_usage());//输出(在我的个人...

2019-11-18 14:31:15 96

空空如也

空空如也

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

TA关注的人

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