自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

少昊 鹰 的 IT博客

本博客会不定期发表一些个人珍藏的PHP笔记,希望可以为大家得到帮助

  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 Scrapy 采集 安装到执行

安装顺序:pip install wheelwhl 文件 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twistedpip install 找到相对应版本的 twisted 文件pip install scrapy生成项目命令行执行 scrapy 查看安装状态命令生成项目scrapy startproject 项目名称...

2019-12-02 17:32:52 187

转载 Elasticsearch基础教程

Elasticsearch基础教程    翻译:潘飞(tinylambda@gmail.com)基础概念    Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。    接近实时(NRT)        Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索

2017-12-08 18:14:12 247

转载 【消息队列MQ】各类MQ比较

RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。Redis是一

2017-11-08 08:47:53 359

转载 如何保证主从复制数据一致性

在MySQL中,一次事务提交后,需要写undo、写redo、写binlog,写数据文件等等。在这个过程中,可能在某个步骤发生crash,就有可能导致主从数据的不一致。为了避免这种情况,我们需要调整主从上面相关选项配置,确保即便发生crash了,也不能发生主从复制的数据丢失。1. 在master上修改配置innodb_flush_log_at_trx_commit = 1sync_

2017-10-29 21:36:15 6278

转载 电商后台

实施步骤考虑到现有业务的正常运作,故订单系统的整合主要分为以下几步来实施一 、先将ERP系统中开线下单的功能迁移出来(包括大客户订单和刷单的订单拦截)说明:线下单,也可理解为订单的内部处理,主要有以下几种情况公司为供货商的角色,渠道产生订单后,需要人员内部录入系统后实施履单流程针对刷单的订单做的特殊处理,这块不做赘述针对大客户订单,合并开票发货处理冲红订单开具线下单,是公司

2017-10-17 20:46:57 1336

原创 电商系统

商品是电商平台的关键,那么怎么通过商品管理系统将商品呈现到用户面前呢?作者近期正在研究电商后台系统之商品管理系统,收获颇多,故在此总结亦分享下,与各位一起成长。商品管理系统主要可以分为三部分:类目管理、属性管理、商品管理。一、类目管理类目包括后台类目树、前台类目树、前台类目与后台类目的映射。后台类目后台类目与创建商品相关,每个商品在后台添加时均需选择相应

2017-10-17 20:36:56 1191

原创 DNS全局负载均衡

DNS全局负载均衡通过智能DNS解析来实现,通常在不同的地区设立多个数据中心,每个数据中心又使用多个运营商的线路智能DNS可以通过多种负载均衡策略来将客户端需要访问的域名解析到不同的数据中心不同的线路上,比如通过IP地理信息数据库解析到最近的线路,或者权衡不同线路的繁忙度解析到空闲的线路等等。除了使用智能DNS解析软件或者云服务,多数对可靠性和性能要求高的用户都会使用硬件的全局负载

2017-10-16 08:50:17 987

转载 mongodb介绍

mongodb介绍MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分

2017-10-11 15:18:18 427

转载 数据库设计原则

对于信息管理类的程序来说,一个系统就是一个信息库。在大量的信息中为了索引、区别,最好的办法就是用数据库。然而建立一个简洁、高效、全面的数据库却并不简单。一个优秀的数据库无疑能够帮助程序员减少业务逻辑操作,减少出错的可能性;而一个糟糕的数据库设计会在需要添加功能的时候无从扩展,或是大量的冗余造成性能的瓶颈。因此,建立一个优秀的数据库,设计好每一张表格变成了尤为重要的事情。然而,很多的问题考虑起来

2017-10-10 20:18:04 602

转载 redis主从复制和集群实现原理

redis主从复制redis主从配置比较简单,基本就是在从节点配置文件加上:slaveof 192.168.33.130 6379主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。redis复制过程如下:1、slave

2017-10-10 09:00:25 372

转载 Redis高级特性及应用场景

Redis高级特性及应用场景    redis中键的生存时间(expire)redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它。过期时间可以设置为秒或者毫秒精度。过期时间分辨率总是 1 毫秒。过期信息被复制和持久化到磁盘,当 Redis 停止时时间仍然在计算 (也就是说 Redis 保存了过期时间

2017-10-09 21:47:27 234

转载 Redis应用场景

MySql+Memcached架构的问题Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这里默认p

2017-10-09 21:44:51 216

转载 Redis 数据库迁移

这里说的数据库迁移,指的是,在一个服务器中生成的数据库文件,直接拷贝到另外一台服务器上,而且两台服务器可能使用的是不同的Redis端口及配置。 如果直接将数据库文件dump.rdb复制到另外一个Redis目录,对数据库进行操作,会发现,dump.rdb里面原来的数据没了,只有刚刚新添加的key-value。 其实解决办法很简单,只要更改一下Redis配置文件即可。###########

2017-10-09 21:42:56 267

转载 导入导出Excel

第一步phpexcel官网上http://phpexcel.codeplex.com下载最新的phpexcel类,下载解压缩后有一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel第二步直接上代码require_once './p

2017-10-07 19:24:34 204

转载 PHPExcel 导入导出

// 数字转字母    function getLetter($num) {        $str = "$num";        $num = intval($num);        if ($num  26){            $ret = chr(ord('A') + intval($str) - 1);        } else {        

2017-10-07 19:23:26 174

转载 利用Swoole实现PHP+websocket 聊天室

websocketWebsocket只是一个网络通信协议 就像 http、ftp等都是网络通信的协议;不要多想; 相对于HTTP这种非持久的协议来说,Websocket是一个持久化网络通信的协议;WebSocket和HTTP的关系WebSocket和HTTP的关系 有交集,但是并不是全部。 Websocket只是借用了HTTP的一部分协议来完成一次握

2017-09-28 17:15:34 3452 1

转载 前端接口的数据结构

当用户进入相关页面的时候,会从后端拉一个全量的数据(全量数据:返回所有的数据);当用户在该页面停留的时候,后端数据的变动会通过增量数据(增量数据:只返回改变的数据)返回(首期统一采用全量响应)。对于每个请求,前端应带上一个时间戳(Long类型的毫秒数)参数t(为上一个后台响应带回来的时间戳,代表上一次数据更新的时间。如果是第一次请求,设置为-1),以便于服务端比较是否有更新的数据。 

2017-09-28 10:31:34 378

转载 数据对接中的安全性保证及接口设计

主要分为三个方面:1. 数据传输加密目前普遍采用SSL协议中相关算法进行传输层的加密,通常是对称的摘要算法(配合证书通过https进行数据对接),或者使用VPN(IPSEC VPN、SSL VPN、MPLS VPN)进行传输甚至专用电路MSTP。2. 身份认证目前普遍采用数字证书技术进行身份认证,数字证书具体又可以分为第三方证书和自签名的证书。认证方法又

2017-09-28 10:29:53 1167

转载 负载均衡中session共享的4种解决方案

负载均衡时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访问被分发到A服务器,那么session就会被存到A服务器,再次访问时负载均衡会分发到B服务器那么第一次访问的session信息就会获取不到之前的session信息。从而导致数据的不一致。解决方案有以下几种:方案一(nginx或者haproxy做的负载均衡):用Nginx 做的负载均衡可以添

2017-09-28 10:28:46 1638

转载 多线程之 悲观锁,乐观锁

多线程之 悲观锁,乐观锁1.悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。数据库锁机制:1    

2017-09-28 10:27:12 285

转载 Git 分支管理和冲突解决

Git 分支管理和冲突解决 创建分支  git branch  没有参数,显示本地版本库中所有的本地分支名称。  当前检出分支的前面会有星号。  git branch newname  在当前检出分支上新建分支,名叫newname。  git checkout newname  检出分支,即切换到名叫newname的分支。

2017-09-27 20:01:41 172

转载 数据库设计三大范式

数据库设计三大范式数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简

2017-09-27 17:24:54 144

转载 表单重复提交

表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:点击提交按钮两次。点击刷新按钮。使用浏览器后退按钮重复之前的操作,导致重复提交表单。使用浏览器历史记录重复提交表单。浏览器重复的HTTP请求。用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题。我们

2017-09-27 09:56:57 238

转载 mysql DELAYED 的使用

mysql DELAYED 的使用使用延迟插入操作 DELAYED调节符应用于INSERT和REPLACE语句。 当DELAYED插入操作到达的时候, 服务器把数据行放入一个队列中,并立即给客户端返回一个状态信息,这样客户端就可以在数据表被真正地插入记录之前继续进行操作了。 如果读取者从该数据表中读取数据,队列中的数据就会被保持着,直到没有读取者为止。接着服务器开始插入

2017-09-27 09:08:50 425

转载 php路由实现原理

阅读别人的代码除了硬读, 更好的方式是开调试器(如xdebug)走单步调试, 一方面你有来自于调试器的信息, 另一方面有你自己的实际的可以跑起来的用例(你写的测试用的代码), 能够更加方便你理解回到路由这个话题, 说到底你其实只要想明白怎么拆分解析pathinfo就可以了, 直接根据pathinfo映射到namespace还是通过正则表达式映射到某个controller都只是其中的一个解析方式

2017-09-27 08:57:58 3751

转载 PHP单一文件入口框架

PHP单一文件入口框架单一文件入口应用,所有请求都是通过index.php接收并转发到功能代码中去,因此一些事情变得简单多了,如数据安全性检查,访问统计等。当前比较流行的一些PHP开发框架如Laravel、ThinkPHP等都是采用的单一入口模式。下面咱们来实现一个简单版的单一文件入口框架,包括MVC架构、URL路由的实现。MVC架构MVC架构Controlle

2017-09-27 08:42:59 997

转载 怎么保证促销商品不会超卖

怎么保证促销商品不会超卖   这个问题是我们当时开发时遇到的一个难点,超卖的原因主要是下的订单的数目和我们要促销的商品的数目不一致导致的,每次总是订单的数比我们的促销商品的数目要多,当时我们的小组讨论了好久,给出了好几个方案来实现:第一种方案是:①在每次下订单前我们判断促销商品的数量够不够,不够不允许下订单,更改库存量时加上一个条件,只更改商品库存大于0的商品的库存,当时我们使用ab进行压

2017-09-25 20:36:50 2846 1

转载 PHP 面向对象

PHP 面向对象在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。在现实世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。对象的主要三个特性:对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。对象的形态:当施加那些方法

2017-09-25 19:38:29 190

转载 Memcache的分布式介绍

Memcache的分布式介绍memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。服务器端仅包括内存存储功能,其实现非常简单。至于memcached的分布式,则是完全由客户端程序库实现的。这种分布式是memcached的最大特点。Memcached的分布式是什么意思?这里多次使用了“分布式”这个词,但并未做详细解释。现在开始简单地介绍一下其原理,各个客

2017-09-24 20:40:00 467

转载 真伪静态

伪静态:伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。 如何选择真伪静态:

2017-09-22 14:24:17 702

转载 php常见的六种设计模式

php常见的六种设计模式 -------------------------------------------------------------------------------- 一、单例模式 * 1. $_instance 必须声明为静态的私有变量* 2. 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序new 类从而失去单例模式的意义* 3. g

2017-09-22 14:23:09 396

转载 排序算法

冒泡算法,排序算法,由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序   $array = array(a,f,c,b,e,h,j,i,g);   function maopao_fun($array){        if($len            return $arr;       }        $count = cou

2017-09-22 14:22:38 115

转载 常见的框架 优缺点简介

Tp 优点 1、高级模型:可以轻松支持序列化字段、文本字段、只读字段、延迟写入、乐观锁、数据分表等高级特性。    2、视图模型:轻松动态地创建数据库视图,多表查询相对简单。    3、关联模型:让你以出乎意料的简单、灵活的方式完成多表的关联操作。   4、模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎,支持两种类型的模板标签,融合了Smarty和

2017-09-22 14:21:41 7553

转载 TP与laravel简介

TP与laravel简介 1、Tp ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。 3.2版本的服务器环境要求如下: PHP5.3以上版本 2、L

2017-09-22 14:20:17 7058 1

转载 Redis简介

Redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。 Redis能运行在大多数POSIX(Linux,*BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本。目前最新的版本是2.2.11,

2017-09-22 14:19:12 136

转载 Nosql是什么

Nosql是什么 -------------------------------------------------------------------------------- 定义:NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数

2017-09-22 14:18:37 905

转载 MySQL的读写分离

MySQL的读写分离 -------------------------------------------------------------------------------- 读写分离的定义:指读与写分别使用不同的数据库,当然一般是在不同服务器上的;一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和

2017-09-22 14:18:06 197

转载 数据库 sql语句优化

数据库 sql语句优化 -------------------------------------------------------------------------------- 写操作(write)1) 如果你同时从同一客户插入很多行,使用多个值表的INSERT语句。这比使用分开INSERT语句快(在一些情况中几倍)。Insert into test values(

2017-09-22 14:17:37 1293

转载 Mysql索引类型

Mysql索引类型 -------------------------------------------------------------------------------- 索引的优缺点优点:有了索引.对于记录数量很多的表,可以提高查询速度。缺点:索引是占用空间的。索引会影响update insert delete速度。索引的四大类型一,FULLTEXT:全

2017-09-22 14:16:56 160

转载 web中集中跨域方式

1、修改document.domain:通过修改document.domain来支持同一个主域内跨域;通过js代码document.domain="your domain"来修改当前域,此方法只能支持同一个域下不同子域间的跨域操作。如:map.baidu.com和www.baidu.com之间,把它们的document.domain="baidu.com"就可以通过js互相操作数据了。

2017-09-20 17:25:21 130

全套erp系统.rar

全套erp系统

2021-04-09

自己封装的小型PHP框架

根据多年的工作经验,也是为了更好的锻炼技术能力,在业余时间,参考类似资料,进行封装的一个框架模型,框架内以完成了一个整体的架构,DUBUG 操作日志 错误日志 以及数据库操作等等 技术点 欢迎大家来提建议

2017-09-22

空空如也

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

TA关注的人

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