自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

范范范国超的博客

记录我的一些学习和工作中遇到的问题和解决方案 。vx:form1101,[email protected]

  • 博客(82)
  • 收藏
  • 关注

原创 mamp 安装redis扩展

mamp 安装redis扩展找到你要安装在那个PHP版本下,比如我要安装在php7.2.22这个PHP版本下先要下载redis扩展, 我下载的目录是exten。先进入到这个目录。git clone https://github.com/nicolasff/phpredis.gitcd phpredis执行phpize/Applications/MAMP/bin/php/php7.2.22/bin/phpize执行config./configure --with-php-

2021-11-10 11:30:55 989

转载 怎么理解PHP中的静态方法和实例化方法?

在PHP中类为什么要使用静态方法,有什么好处不需要实例化??可以提高运行效率??这是一个经常被时时提出来的问题,很多时候我们以为理解了、懂了,但深究一下,我们却发现并不懂。方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?我特意以“你怎么理解并使用静态方法和实例化方法的?”这样的问题询问了多位程序员,他们开发的语言.

2021-09-24 11:19:21 308

原创 RabbitMQ 介绍

RabbitMQ介绍RabbitMQ是一个基于AMQP的开源消息管理系统可以作为消息中间件支持主流操作系统:Linux、Windows、MacOX等。多种开发语言支持,java、python、ruby、PHP、node.js等。RabbitMQ基本工作流程**Broker:**是一个还是RabbitMQ集群虚拟主机: Broker由一个交换机(Exchange)和一个消息队列(Queue)组成,两者结合起来称为一个虚拟主机(Virtual Host),一个rabbitMQ有7个交

2021-08-30 22:22:37 329

原创 tp5使用RabbitMQ的使用记录(三) -- 发布订阅模式

tp5使用RabbitMQ的使用记录tp5使用RabbitMQ的使用记录(二)-- work queuerabbitmq 官方文档 发布订阅模式首先希望大家能够关注文档,文档上的内容比较全面,解释的也非常形象。我对此的记录就是写了一下对文档的理解,并且把文档上的内容在TP5中由重新写了一遍。根据前面两篇文章我们知道了 生产者就是发送消息的客户端,队列就是一个缓冲区,用于存储消息。 消费者就是接受消息的应用程序那发布订阅模式的核心思想就是生产者生产的消息不知道往队列里面发,而是发布到交换.

2021-08-25 22:13:10 508

原创 tp5使用RabbitMQ的使用记录(二)-- work queue

tp5使用RabbitMQ的使用记录rabbitmq 官方文档 work queue 的部分首先希望大家能够关注文档,文档上的内容比较全面,解释的也非常形象。我对此的记录就是写了一下对文档的理解,并且把文档上的内容在TP5中由重新写了一遍。work queue 工作队列又称为任务队列,我认为这种模式的队列有一下几点是需要关注的。- 需要明确的是一个队列可以被多个消费者消费 - 在被多个消费者消费的情况下,一个队列里的100个元素会被平均的分配到n个消费者那里...

2021-08-24 23:05:19 728 3

原创 tp5使用RabbitMQ的使用记录

准备工作:1. 搭建好rabbitmq服务器2. 搭建好TP网站一、 安装amqp包composer require php-amqplib/php-amqplib二、 网站中写一个发布者请求,往rabbitmq服务器发送数据。app\controller\Test.php<?php/** * Created by Fanguochao * User: fgc * Date: 2021-08-23 * Time: 21:52 * Desc: rabbimtM

2021-08-23 23:09:01 2152 4

原创 PHP 中的回调函数的几种写法

1 概念回调函数的概念就是在主进程执行的过程中,突然跳转到预先设置好的函数中去执行的函数。回调函数的几种写法函数字符串:function insert($i){ echo "插入数据{$i}\n"; // 模拟插入数据库插入的操作 return true;}$arr = range(0, 1000); // 模拟生成1001条数据function action(array $arr, callable $function){ foreach ($arr as $key =&g

2021-08-19 23:05:05 1574

原创 mac版docker搭建FastDFS文件系统

前言FastDFS 是用c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS 很容易搭建一套高性能的文件上传、下载等服务。用docker搭建又是怎么一回事呢?目录前言一、Docker搭建服务端二、使用docker搭建的步骤1.运行命令查找镜像2.拉取镜像3.启动容器​4. 验证服务是否启动成功5.验证上传图片的服务是否可以使用总结...

2021-07-20 23:52:14 599 1

原创 Python Django使用celery发送邮件

介绍Celery是一个功能完备即插即用的任务队列。它使得我们不需要考虑复杂的问题,使用非常简单。celery看起来似乎很庞大,本章节我们先对其进行简单的了解,然后再去学习其他一些高级特性。 celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 celery的特点是:简单,易于使用和维护,有丰富的文档。 高效,单个celery进程每分钟可以处理数百万个任务。 灵活,celery中几乎每个部分都可以自定义

2021-07-14 23:27:48 449 4

原创 怎么使用PHPSTORM和Xdebug进行调试?(不是如何安装,是如何使用)

我们在网上已经有很多教程教了你PHPstorm和xdebug的调试方式,但大多数文章都是教你怎么在PHPSTORM中安装xdebug。不是说怎么使用xdebug去进行调试的。那么,现在我给大家带来一篇文章就是专门讲怎么使用xdebug。1、xdebug作用在php中xdebug有用。Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪、调试和分析PHP程序的运行状况。就是说我们平时用var_dump()、print_r()的日子一去不复返了。xdebug可以一

2021-07-11 17:17:23 616 2

原创 python学习笔记--迭代器

可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。但不是所有的数据类型的数据都能够迭代。比如整型是不可以迭代的。自定义一个类也是不可以迭代的。迭代对象for temp in (1,23,4) temp就是迭代对象判断一个对象是否可以迭代from collections import Iterable isinstance([], Iterable) # tru

2021-06-24 22:38:53 79

原创 PHP 怎么获取闭包函数的static、this和parameter属性值

闭包函数,又称作匿名函数。PHP手册中又解释Closure是用于代表匿名函数的类.。匿名函数,顾名思义是没有名字的函数。其中,匿名函数也叫闭包函数。<?php$closure = function(){echo "hello";}; // 首先我们创建一个匿名函数var_dump($closure); // 输出object(Closure)#1 (0) { } $closure(); // 输出hello...

2021-06-11 10:24:00 777 3

原创 mac下MAMP安装amqp扩展,必然可以成功!(已验证)

因为最近项目要用到rabbitmq。所以要给该项目安装好开发环境。因为使用的语言是PHP,大家都知道,PHP是要安装扩展的。由此也就产生了zhe'yi'pian'wen'z

2021-06-03 00:11:04 371 2

转载 关于CGI 和 PHP-FPM需要弄清的

关于CGI 和 PHP-FPM需要弄清的首先我们引入一些概念,搞清楚 CGI 和 FastCGICGI通用网关接口(CommonGatewayInterface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。FastCGI快速通用网关接口(FastCommonGatewayInterface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI...

2021-05-25 00:02:00 441

原创 js 对象转换成数组

js 对象转换成数组例如: "data": { "2021-04-25": 0, "2021-04-26": 0 }这个数据返回两个值的,需要把它补全成一周(7天)的值,第一想法就是循环遍历,往数组中追加。可这是个对象。就需要用到下面的方法。var arr = [];api.getIndexDateUnderAttendance(params).then((res)=>{ if(res.data.code == 1){

2021-04-26 18:06:59 6204

转载 JavaScript的原型对象的彻底理解

前言开篇先记住以下两点,再渐渐通过实例理解 __proto__和constructor属性是对象所独有的; prototype属性是函数所独有的。 但是由于 JS 中函数也是一种对象,所以函数也拥有 __proto__ 和 constructor 属性一、函数的原型对象我们创建函数 A 的同时, 浏览器会在内存中创建一个对象 B,A 函数默认会有一个 prototype 属性。指向了对象 B( 即:prototype 的属性的值是对象 B )。 ​ 这个对象 B 就是函数 A

2021-04-25 22:59:59 98

转载 NPM install -save 和 -save-dev 区别

最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱。其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同点略有理解。遂写下这篇文章避免自己忘记,同时也给node猿友一点指引。我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式: 1 2 3 4 5 6 7 npminstallmoduleN..

2021-01-10 15:06:59 113

原创 mamp xdebug3.0和phpstrom配置,一定可以成功!

目录前言准备1. 安装xdebug插件2.谷歌浏览器安装debug插件3.IDE信息配置4. 调试前言前几天在开发调试的时候遇到一个棘手的问题。循环查找上级id。获取最上级的信息。写好代码调试的时候,就出现问题。因为用到了递归算法。所以一步步用var_dump也不是很方便。在公司同事的帮助下通过xdebug找出了问题所在。所以我觉得利用xdebug调试已经是迫在眉睫。这两天研究了一下,展示一下自己的学习成果,当然,如果能够帮助到大家的话,那就更好了。准备mamp pr

2020-12-22 23:07:00 996 3

原创 python中对象的内置方法

序号 方法名 类型 作用 01 __del__ 方法 对象被从内存中销毁前,会被自动调用;使用del 关键字也可以达到效果 02 __str__ 方法 返回对象的描述信息,print函数输出使用 ,返回自定义字符串。 03 __init__ 方法 创建对象的同时,设置初始值 一个对象的属性可以是另一个类的对象身份运算符:身份运算符用于比较两个对象的内存地址是否一致 ——是否是...

2020-11-15 22:31:16 268

转载 MySQL 之 LEFT JOIN 避坑指南

现象left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论、商城里一个货物有多少评论、一条评论有多少个赞等等。但是由于对join、on、where等关键字的不熟悉,有时候会导致查询结果与预期不符,所以今天我就来总结一下,一起避坑。这里我先给出一个场景,并抛出两个问题,如果你都能答对那这篇文章就不用看了。假设有一个班级管理应用,有一个表classes,存了所有的班级;有一个表students,存了所有的学生,具体数据如下(感谢廖雪峰的在线SQL):SEL

2020-11-11 00:19:33 1196

原创 python笔记20201110

1. python的特点:完全面向对象。数据类型也是对象,有丰富的第三方插件2. python的优点和和缺点: 优点:面向对象,开源,有丰富的扩展库。 缺点:解释性语言没有编译性语言的速度快、国内的中文社区资料比较少。3. python 文件的创建 .py4. python 中常见的错误 名称错误,语法错误,缩进错误5. 现在的市场是有几个python的版本?他们之间有什么区别? 2.x和3.x 2.x版本不能运行中文。 3.x版本能运行中文6...

2020-11-10 23:24:29 66

原创 nginx配置文件详解(中文注释)

Nginx配置参数中文说明。#定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#进程文件pid /var/run/nginx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打

2020-10-19 00:03:27 288

原创 PHP的五大运行模式

运行模式关于PHP目前比较常见的五大运行模式:1)CGI(通用网关接口/CommonGatewayInterface)2)FastCGI(常驻型CGI/Long-LiveCGI)3)CLI(命令行运行/CommandLineInterface)4)Web模块模式(Apache等Web服务器运行的模式)5)ISAPI(InternetServerApplicationProgramInterface)备注:在PHP5.3以后,PHP不再有ISAPI模式...

2020-09-15 16:39:31 154

原创 Python学习笔记4--爬虫框架scrapySpider 规则的使用

创建项目scrapy startproject mySpider创建爬虫scrapy genspider -t crawl cf cbirc.gov.cn运行爬虫scrapy crawl cfimport scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Ruleimport re # 需要引入class CfSpider(Crawl

2020-08-12 13:46:33 266

原创 Python学习笔记3--爬虫框架scrapy 安装和基本命令行

1.什么是scrapyscrapy是一个为了爬取网站数据,提起结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取数据。使用了异步网络框架,可以加快速度。2.scrapy的工作流程2.1之前的流程2.2另一种形式爬虫流程3.安装scrapy3.1首先安装的是4个依赖库lxmlpyOpenSSLTwistedPyWin323.2 执行安装screpypip3 install Scrapy4 .简单实用Scrapy创建项目

2020-08-10 20:56:36 217

原创 win10下pip安装提示Twisted

1.打开网址https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载完成以后放置到python的安装包当中。执行安装: pip install D:\soft\Python38\Twisted-20.3.0-cp38-cp38-win_amd64.whl

2020-08-10 20:04:50 657

原创 Python学习笔记2-动态hemlt

1. 后续爬虫代码的建议2.selenium和PhantomJS1. 安装seleniumpip install selenium2. 下载chromedriver.exe下载地址:http://npm.taobao.org/mirrors/chromedriver/3.将chromedriver.exe拷贝至谷歌浏览器目录(如 C:\Program Files\Google\Chrome\Application)以及python根目录(C:\Python38)。4

2020-08-10 16:24:42 212

原创 Python学习笔记1-json和python数据类型的转换

python中json数据的处理# coding=utf-8import jsonimport requestsfrom parse_url import parse_urlurl = "https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?start=0&count=18&loc_id=108288"html_str = parse_url(url)# json.load

2020-08-10 13:39:29 376

转载 python模块安装问题

python模块安装问题:no matching distribution found for XXX 或者 Read timed out.从国内库源下载,速度快,主要为两个清华库源 https://pypi.tuna.tsinghua.edu.cn/simple/豆瓣库源 https://pypi.doubanio.com/simple/也可以在Pycharm中添加设置超时时间安装:pip --default-timeout=100 install #包名1pip临时使用

2020-08-09 18:39:34 373

转载 linux 常用命令行总结

1、linux shell 命令行下删除一个单词的方法:我们有时在Linux下输入命令时,难免有输错的时候,在有的终端上,输错后,用退格则出现乱码现像,可以用以下方法解决。CTRL + H#相当于按了一次退格键,一次删除一个字母CTRL + U#一次删一行CTRL + W#一次删一个单词,也可以这么理解,一次删一个空格的位置,比如:face book abcd edff,这种情况要按四次才能删完2、vi下删除一个单词的方法:diw 删除光标上的单词 (不包括空白...

2020-07-17 16:02:46 416

原创 请写出mysql的日志文件,并介绍日志文件的作用。

在mysql中有五种日志分别是:1.错误日志(errorlog) mysql服务运行的错误,不是查询sql运行产生的错误。 1.1 查找错误日志的信息show variables like '%log_error%';2.事务日志 事务日志在innodb引擎下存在 2.1.重做日志(redo log) ib_logfile0 2.2 回滚日志(undo log) ibdata3.二进制日志(binlog)show...

2020-06-19 11:04:52 174

原创 centos7安装mysql5.7

1.下载并安装官方的rpm源wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm然后直接yum安装:yum -y install mysql57-community-release-el7-10.noarch.rpm2.安装MySQL服务器yum -y install mysql-community-server3.MySQL数据库设置首先启动MySQLsyste

2020-06-18 15:11:56 113

原创 Trait 是什么?

Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Class 之间不需要继承。简单来说trait就是

2020-06-11 14:00:26 314

原创 怎么理解观察者模式?

观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码。<?php/** * 观察者接口类 * Interface ObServer */interface ObServer{ public function update($e

2020-06-11 12:56:53 233 1

原创 视频直播服务器SRS的搭建

1.获取源码git clone https://github.com/ossrs/srs.git2.关闭防火墙sudo /etc/init.d/iptables stopsudo /sbin/chkconfig iptables off3.解压并且编译安装tar -zxvf xxx.tar.gzcd xxx./configure && make4.启动srs服务./objs/srs -c conf/srs.conf源站RTMP流地址为:rtmp:

2020-06-10 10:12:46 731

原创 MYSQL的主从配置的过程

今天完成了mysql主从配置的过程,在此写一篇文章记录一下。1.准备工作准备两台安装好的mysql的服务器。如果没有的话就在本机装一个虚拟机,在本机装一个mysql服务端。并且要保证本机和虚拟机能够ping通。2.执行主从配置的过程2.1 主服务的配置文件的修改文件的位置D:\soft\phpstudy_pro\Extensions\MySQL5.7.26\my.ini编辑my.ini文件在[mysqld]下增加增加这两句配置 这一点非常重要!!!server_id=1l.

2020-05-26 17:41:02 286

原创 MYSQL设置允许用户远程登录

1.  //登录数据库mysql -u root -pvmwaremysql>use mysql;//%为所有ip都可以远程访问mysql>update user set host = '%' where user = 'root'; //或直接添加一条语句也行   mysql>insert into user (host,user,password) values('192.168.1.123','root',password('123'));...

2020-05-26 16:56:26 943

转载 mysql死锁的解读(转载)

死锁(Deadlock)什么是死锁所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。产生死锁的四...

2020-05-04 15:19:39 397

原创 pdf文件转多张图片?imagick扩展的安装?执行转换代码时报678的错误?解决方案都在这儿啦

1.安装PHP的imagick扩展。wget http://pecl.php.net/get/imagick-3.4.3.tgztar -xvf imagick-3.4.3.tgzcd imagick-3.4.3//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/p...

2020-04-26 01:21:40 719 1

转载 【转】深入Redis持久化

一、Redis高可用概述在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会...

2020-04-21 23:25:46 170

空空如也

空空如也

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

TA关注的人

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