PHP专栏
文章平均质量分 64
主要讲述PHP相关的知识,包括数据库,各种缓存技术。
古语静水流深
生命源自最初的梦想
展开
-
在thinkphp6中使用消息队列服务遇到的几个问题
thinkphp的消息队列遇到的问题原创 2022-06-06 00:59:22 · 2708 阅读 · 1 评论 -
萌芽采集的定时任务如何开启
选择想要采集的线路:这里我已红牛资源为例。在使用定时采集之前记得绑定分类。剩下的就是我们拿到我们需要的地址。使用浏览器的调试功能,按F12就可以调出调试工具。比如我们定时任务为采集本周。去系统,定时任务哪里设置任务。然后我们测试一下是否可以。目前看是没有问题。那么剩下的就是让他自动执行了...原创 2021-08-27 10:03:38 · 1475 阅读 · 0 评论 -
苹果cms的全解析(第一节大体阐述)
很多影视系统使用了这套cms系统。最近我也有接触。我准备写几篇文章对这套系统进行彻底的一次梳理。希望给使用或者即将使用它的小伙伴有帮助。苹果cms的总体架构就是:先把我总结的图片放在这里。后续我们一一进行分析。总框架:视频层:视频播放流的梳理:苹果系统的两种数据存储形式:文件的形式存储位置在extra文件夹。数据库存储db。至于大家关心的其他设置和订单或者代理模式。都是代码层实现的。我会对每一个细节进行详细的阐述和原理的讲解。让任何一个PHP小白可以迅速的掌...原创 2021-08-20 21:03:10 · 4470 阅读 · 2 评论 -
Thinkphp5.1 源码分析第一节(类自动加载初始)
开发的很多项目都使用了thinkphp,所以我准备写一个系列,对thinkphp进行全面的一个分析。希望帮助phper提升自己对框架的使用和理解。最好自己本地查看代码的时候又断点调试的功能。没有的话,可以查看我配置断点调试的文章。对于很多框架都有类的自动加载机制的。我们就对thinkphp进行分析类是如何加载的。我们从入口文件开始分析:我们看到thinkphp的入口文件index.php:通过下图我们看的出来,加载的过程。那么我们想要对自动加载理解的很深入。就需要对loader.php中的注册方原创 2021-03-03 22:44:05 · 275 阅读 · 1 评论 -
Redis官方自带的性能测试工具redis-benchmark
测试首先我们看一下它的可选参数有哪些?图片来自菜鸟教程~它的格式:redis-benchmark [参数] [参数的值]注意一点就是这个命令是在 redis 的安装目录/usr/local/bin下执行的,而不是 redis 客户端的内部指令。ok,我们来举一个简单的实例:比如我想测试一下100个并发连接,100000条请求。ok,这就是这个测试工具的用法~...转载 2021-01-05 09:57:06 · 320 阅读 · 0 评论 -
Redis发布订阅和应用场景
发布订阅-应用场景Pub/Sub 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是构建实时消息系统,比如普通的即时聊天,群聊等功能。订阅某个channel的信息发布信息到某个channel上简单的应用场景的话,以门户网站为例,当编辑更新了某推荐板块的内容后:CMS发布清除缓存的消息到channe..原创 2021-01-05 09:51:01 · 494 阅读 · 0 评论 -
Redis的缓存穿透,缓存击穿,缓存雪崩原因和解决方案
一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问转载 2021-01-04 19:41:26 · 133 阅读 · 0 评论 -
Redis主从复制的讲解
和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:- 从服务器连接主服务器,发送SYNC命令;- 主服务器接收到SYNC命名后,开始执行BGSAV...转载 2021-01-04 11:02:23 · 126 阅读 · 0 评论 -
Redis的哨兵模式详解
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。一、哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。Redis哨兵这里的哨兵有两个作用 通过发送命令,让Redis服务器返回监控其运行状.原创 2021-01-04 10:33:03 · 1878 阅读 · 0 评论 -
Redis事务的详解
Redis事务的概念: Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。 Redis事务没有隔离级别的概念: 批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。Redis不原创 2021-01-03 10:37:44 · 138 阅读 · 0 评论 -
Redis的持久化方式(RDB和AOF)详解
一、RDB持久化RDB(Redis DataBase):配置文件中对其的相关配置:触发机制:恢复rdb文件:优点:缺点:二、AOF持久化AOF(Append Only File):配置文件中对其的相关配置:恢复aof文件:优点:缺点:Redis中的数据存在内存中肯定是不安全的,所以需要将数据进行持久化操作,防止数据丢失造成的危害。一、RDB持久化RDB(Redis DataBase):在指定时间间隔内将内存中的数据快照集体写入磁盘,也就是.原创 2021-01-03 10:17:44 · 505 阅读 · 0 评论 -
Redis的乐观锁
我们知道大多数是基于数据版本(version)的记录机制实现的。即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个”version”字段来实现读取出数据时,将此版本号一同读出,之后更新时,对此版本号加1。此时,将提交数据的版本号与数据库表对应记录的当前版本号进行比对,如果提交的数据版本号大于数据库当前版本号,则予以更新,否则认为是过期数据。redis中可以使用watch命令会监视给定的key,当exec时候如果监视的key从调用watch后发生过变化,则整个事务会失败。也原创 2021-01-03 10:07:03 · 395 阅读 · 1 评论 -
redis配置文件详解
Redis是一个高性能的key-value数据库。 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 为了更好的使用redis,我们需要详细的了解redis配置文件及相关参数作用。 1 include/path/to/loc...转载 2021-01-03 09:22:39 · 191 阅读 · 0 评论 -
discuz的简单学习笔记
资料库:https://www.discuz.net/library/library/1.视图模板存放的位置为:template文件夹里面,对应关系大致如下:手机标准版:mobile 文件夹手机版:mobile 文件夹,touch文件夹手机触屏:m 文件夹手机极简版:wml文件夹2.入口文件:定义常量:define('IN_MOBILE',4); define('IN_NEWMOBILE',true);引入核心类文件并初始化require'./source...原创 2020-12-27 15:47:50 · 301 阅读 · 0 评论 -
记录一次Redis的小事故
因为公司做的业务流量比较大,一直没有太关注Redis的使用情况。昨天就出现了:Redis: OOM command not allowed when used memory > ‘maxmemory’OOM command not allowed when used memory > 'maxmemory'查了一下原因:内存已满,不允许再存数据了。可以通过redis-cli 查看redis的具体信息,使用:info memory命令查看使用情况。我登录我的后台查看的是这样的:原创 2020-12-17 11:24:46 · 179 阅读 · 0 评论 -
Visual Studio Code 调试php插件
了解我的盆友知道,我是十分喜欢vscode的编辑器。但是作为phper有的时候确实需要调试。所以对这款编辑器就需要拓展它的可以调试的功能。那么今天我以当下最新的状态写一下配置的方法。希望给需要的小伙伴一些帮助。1.vscode的软件下载。这一般百度或者搜索引擎都可以下载到。2.安装插件php debug,直接在安装插件的位置输入我截图的名字。下载即可。3.当我们下载完成,一般都有自己的php环境。我这里使用最新的phpstudy为例。因为这个软件的好处就是已经给我们安装了xdebug的.原创 2020-09-19 18:14:40 · 1177 阅读 · 0 评论 -
CGI、FastCGI和PHP-FPM浅析
首先,PHP-FPM(FastCGI Process Manager: FastCGI进程管理器)是一种针对PHP的FastCGI,针对PHP语言的一种进程管理器。FastCGI顾名思义就是一种快速的CGI(Common Gateway Interface)。因此为了能够理解PHP-FPM,我们首先应该了解CGI是怎么样一个机制。1 CGI(Common Gateway Interface...原创 2019-01-17 11:45:15 · 241 阅读 · 0 评论 -
支付相关的知识点(移动支付,银行支付,第三,四方支付)
自己所在的公司,支付做的算是比较多的。仅仅两个月,已经对接了至少8种以上的支付平台,其实支付都原理大致都是一样的。携带参数到网关地址,然后回调函数(异步),完成逻辑部分。今天我就针对自己所做的支付,进行一次总结。1.看看各大支付的主要流程:支付宝和微信(因为国内这两个用的比较多)支付宝:携带用户提交的参数,对支付宝网关发起请求,返回支付界面,用户输入密码和账户支付,支付宝确认支付后,对商户...原创 2019-01-12 15:56:38 · 2270 阅读 · 0 评论 -
php-fpm安装、配置与优化
1、php中fastcgi和php-fpm是什么东西最近在研究和学习php的性能方面的知识,看到了factcgi以及php-fpm,发现我对他们是少之又少的理解,可以说几乎是一无所知,想想还是蛮可怕的。决定仔细的学习一下关于这方面的知识。参考和学习了以下文章: 1. mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据 2. 实战Nginx_取代为了如何一...转载 2019-01-10 15:22:44 · 239 阅读 · 0 评论 -
CURL详解(转载)
目前为止最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正则,一定就是个采集高手了.PHP中的CURL函数库(Client URL Library Function)curl_close — 关闭一个curl会话curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数curl_errno — 返回一个包含当前会话错误...转载 2018-12-02 11:10:10 · 1795 阅读 · 0 评论 -
图解框架(PHP)
原创 2018-12-01 23:37:57 · 305 阅读 · 0 评论 -
模板引擎Smarty(部分内容采集网络)
1.Smarty是一种模板引擎技术模板引擎是什么?在用户页面展示的一个页面,由两方面,数据及承载数据的标签。标签就是html,而数据是由php处理。这样就造成一个文档牵涉了两种工作人员(前端与后台)。模板引擎技术就是将,php代码与html代码分离。Smarty是zend公司使用php语言所编写一套php语言模板引擎。模板引擎涉及到4个文件:php 产生数据 模板 html...原创 2018-12-01 23:21:39 · 203 阅读 · 0 评论 -
php中数据的保存(主要讲述的文件的保存)
程序语言中对数据划分了很多的类型,但数据与之相关的有两个方面:其一是值,其二是类型。程序在运算的过程中,会产生数据,但程序执行结束内存中的数据都会丢失。如果想保存程序执行过程中产生数据,要保存起来。保存的位置文本文件或数据库。但是文本文件中只能保存字符信息。为了将数据的数据与类型一同保存到文本文件中,而不致于丢失类型。所以有序列化技术。1.序列化:将数据的值与类型都使用字符串的描述。函...原创 2018-12-01 20:35:51 · 1854 阅读 · 0 评论 -
php中命名空间(namespace)的作用和使用
1.命名空间的作用:在PHP中函数、类、常量是不允许同名的。为了解决这三者的同名问题,所以出现了命名空间. 其实不仅仅是php,其他语言也有类似的使用。比如JavaScript中:我们来详细的讲解一下PHP中的命名空间:语法:namespace 空间名\空间名;说明: 用于定义空间名;如果一个php文件中,第一个空间的定义义必须放在第1行。如果所要定义的空间已存在,则是进入空间...原创 2018-12-01 11:12:26 · 17212 阅读 · 1 评论 -
php中类的对象的私有属性遍历-----预定义的接口iterator
对象的属性名与值类似于关联数组的键名与键值,对象从这个角度来看与关联数组很相似,所以php中的对象可以使用foreach进行遍历public的属性。代码如下:当对一个对象使用foreach时默认是对公有属性的遍历,但公有属性的遍历没有实际的意义,在很多的框架中是允许对某个对象中的私有的属性的遍历。一般这个私有属性中存储的数据库中读取出来的数据。如何实现呢了,php中提供了一个预定义的接口—...原创 2018-11-30 22:07:27 · 534 阅读 · 0 评论 -
设计模式一(php示例 单例模式和工厂模式)
所谓的设计模式,就是具有多年开发经验的人,在实际工作中为了解决某一种需求,而形成的一套代码方案。1.单例模式:单例模式:所谓的单例模式就是单一的实例。通过一个类永远只能获取一个对象。基本的实现思路:单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。单例的实现主要是通过以下两个步骤:将该类的构造方...原创 2018-11-30 21:22:49 · 199 阅读 · 0 评论 -
PHP中的 extends与implements 区别
extends 是继承某个类 ,继承之后可以使用父类的方法 ,也可以重写父类的方法。implements 是实现多个接口,接口的方法一般为空的,必须重写才能使用.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,php中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现...转载 2018-11-30 20:33:52 · 730 阅读 · 1 评论 -
C/S与B/S架构的区别和优缺点
C/S 架构的概念C/S是Client/Server,即客户端/服务器端架构,一种典型的两层架构。客户端包含一个或多个在用户的电脑上运行的程序服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。C/S 可以看做是胖客户端架构因为客户端需要实现绝大多数的业务逻辑和界面展示。作...转载 2018-11-28 10:50:33 · 339 阅读 · 0 评论 -
一个PHP针对数字的加密解密类
<?phpnamespace app;/** * 加密解密类 * 该算法仅支持加密数字。比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密。 * @author 深秋的竹子 * @version alpha * @加密原则 标记长度 + 补位 + 数字替换 * @加密步骤: * 将a-z,A-Z,0-9 62个字符打乱,取前M(数字最大的位数)位作为 标记...转载 2018-09-23 14:04:16 · 2276 阅读 · 0 评论 -
对接企业支付宝的流程(电脑和手机)
因为项目的需求,所以对于支付这块,对接的企业支付宝的电脑网站支付和手机支付。写这篇博客的主要目的就是想把支付这块的对接给详细的说一下其中的知识点。博客所说的案例demo下载地址:https://pan.baidu.com/s/1qx3kUQh_9U2KlKGNrLqMLQ使用企业支付宝,分为四步:使用企业身份成为支付宝的用户(蚂蚁金服) 申请地址:https://open.alipay...原创 2018-08-25 13:40:47 · 10431 阅读 · 2 评论 -
PHP中实用的小函数(持续更新中.....)
实际工作中,代码的维护性和可扩展性,是一个程序员的重要素质和能力。能够将一些常用的东西提炼出来,或者对代码中可变更部分的提取就十分重要。如果你喜欢研究框架,你也会发现。框架对很多可变更部分的提取做的很好。它会把这些经常变更的东西称为配置项。这样我们只要修改配置项,全局所有的东西都会变更。大大提高了代码的可维护性。工作多年,应该有自己的东西和思维模式。就是让自己更接近计算机的思维。对代码的读取和计算...原创 2018-07-21 09:05:51 · 244 阅读 · 0 评论 -
PHP知识的总结(第一篇)环境的配置
由于工作的原因,所以或多或少都会用到这个语言。自己也从事了PHP开发有一段时间了。就想着能不能写一个成体系的,从浅入深的PHP文章系列。今天的这篇就是我开始旅程的第一步。下面我就开始:首先我们要知道PHP到底相对于其他语言有什么优势,虽然很多人觉得PHP有衰落的趋势。这个我也不多说。那么PHP的优势有哪些呢:开发周期短- 对于公司来说,开发周期短(意味着效益)入门简单- 对于程序员原创 2017-11-30 12:44:04 · 338 阅读 · 0 评论 -
PHP中文件上传的功能模块实现
最近项目中PHP使用的比较多,对于一个前端的使用者,对其中的一些知识点记录下来。今天讲一下,文件上传的功能实现的一些知识。之前在项目中使用的nodejs实现过类似的功能,用PHP在做的时候,发现差不多大同小异。背后的逻辑差不多都是一样的。1.前端页面要做的是,首先是提交方式必须修改为post,因为文件上传和大数据的传输,post更合适。需要注意的地方如下:原创 2017-12-14 21:16:32 · 9486 阅读 · 0 评论 -
PHP中分页功能的实现
我们经常在网上看到分页的出现,最近没事。看看公司的后台代码,对这个小模块进行封装。制作成一个函数。现在将自己的这个思考过程,写下来。 首先我们来看看分页的逻辑:首先我们要确定首页和尾页的限制,首页必须限定在1,尾页限制的数字,需要结合我们的数据库的数据条数,和每页的显示数量。尾页=ceil(数据库总条数/每页显示的数量),向上取整。这就是我们尾页的限制数字。接下来我们就要控制数字出现的规律了原创 2017-12-15 20:24:50 · 17702 阅读 · 3 评论 -
PHP面向对象(第一篇)
PHP中存在两种编程的思想,就是面向过程和面向对象。我们现在大多数使用的是面向对象的思想来做我们的项目。那么我们来认真学习一下面向对象的思想。我们先来看看两者的区别: [x] 面向过程: 代码复用执行的效率高后期很难维护[x] 面向对象: 代码复用执行的效率相对面向过程低后期易于维护类:分类是人们认识现实世界最主要的方式。从众多的事物中提获共性(所谓的共性就是共同的特性),形成的原创 2017-12-30 20:52:41 · 207 阅读 · 0 评论 -
PHP面向对象(第二篇)
计算机中的封装就是对外隐藏对象的内部实现,对外仅公开接口,通过public、private、protected、static、final等关键字控制成员对外访问的等级。继承性:面向对象语言中最主要的特点就是继承,继承指的是这样的一种能力,将要创建的类,可以不书写任何的代码,而拥有已存在的类的全部的功能。继承还可以在不更改父类的基础上扩展子类的功能。class B extends A{原创 2017-12-30 21:26:01 · 199 阅读 · 0 评论 -
PHP面向对象(第三篇)
重载:PHP中的重载说的是对类中不可以访问的成员的一种处理方法。此处的不可访问有两种情况:情况1:类中没有所在访问的成员情况2:所要访问的成员在类中不是public。PHP自动处理机制,当我们程序执行了某种代码时,由php自动触发执行的机制。php类的一个对象可以随意的向对象上添加不存在的属性,为了严谨考虑,我们限制这样的操作。class A{ private $name="12原创 2018-01-04 20:23:13 · 219 阅读 · 0 评论 -
PHP解决网站大数据大流量与高并发
PHP解决网站大数据大流量与高并发1:硬件方面普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的。主要影响服务器的速度有:网络-硬盘读写速度-内存大小-cpu处理速度。2:软件方面第一个要说的就是数据库,首先要有一个很好的架构,查询尽量不用* 避免相关原创 2018-01-04 20:39:37 · 359 阅读 · 0 评论 -
PHP语言MVC思想深入剖析(亲自写一个MVC框架)
写这篇帖子的主要目的就是对PHP中MVC思想的使用,进行一下分析。并亲手写一个MVC框架,达到熟练掌握MVC思想的目的。产生的原因: MVC的主要作用是为了将代码分层、分类。MVC的主要目的是为了解决Web开发中分离开发与设计工作,使其工作相对独立在这样的过程中还发现了其他的一些优点,网站的目录结构更加清晰,网站更易维护与扩展,可以实现模块的复用MVC各司其职,使得功能单一,更容易维护。原创 2018-01-07 16:52:20 · 1321 阅读 · 0 评论