大话 PHP 设计模式-策略模式

大话 PHP 设计模式-策略模式 设计模式 策略模式 策略模式定义了一族相同类型的算法,算法之间独立封装,并且可以互换代替。 这些算法是同一类型问题的多种处理方式,他们具体行为有差别。 每一个算法、或说每一种处理方式称为一个策略。 在应用中,就可以根据环境的不同,选择不同的策略来处理问题。 以数组输出为例。 数组的输出有序列化输出、JSON字符串输出和数组格式输出等方式。 每种输出方式都可以独立封装起来,作为一个...

[阅读更多 →]

大话 PHP 设计模式-适配器模式

大话 PHP 设计模式-适配器模式 设计模式 单列模式 适配器模式,即根据客户端需要,将某个类的接口转换成特定样式的接口,以解决类之间的兼容问题。 如果我们的代码依赖一些外部的API,或者依赖一些可能会经常更改的类,那么应该考虑用适配器模式。 下面我们以集成支付宝支付功能为例。 1 、 问题 假设支付宝支付类的功能如下: /** * 支付宝支付类 */ class Alipay { public fun...

[阅读更多 →]

大话 PHP 设计模式-简单格式工厂

大话PHP设计模式-简单格式工厂 设计模式 简单格式工厂 常见的设计模式大致有20多种,根据使用目标的不同可以分为以下三大类: 创建模式:用于创建对象从而将某个对象从实现中解耦合。 架构模式:用于在不同的对象之间构造大的对象结构。 行为模式:用于在不同的对象之间管理算法、关系以及职责 简单格式工厂 工厂模式,就是负责生成其他对象的类或方法。 1、类实现 比如,我们有一些类,它们都继承自交通工具类: inte...

[阅读更多 →]

大话 PHP 设计模式-单例模式

大话PHP设计模式-单例模式 设计模式 单列模式 常见的设计模式大致有20多种,根据使用目标的不同可以分为以下三大类: 创建模式:用于创建对象从而将某个对象从实现中解耦合。 架构模式:用于在不同的对象之间构造大的对象结构。 行为模式:用于在不同的对象之间管理算法、关系以及职责 单例模式 单例模式(Singleton pattern)属于创建模式的一种,它的作用在于限制程序,使其只能创建某一个特定类型的单一的...

[阅读更多 →]

MySQL 的奇技淫巧 - SQL 技巧

一、一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status !=0 and stauts !=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) (2)前导 模糊查询不能使用索引 select * from order where desc like...

[阅读更多 →]

scrapy 详细实例-爬取百度贴吧数据并保存到文件和和数据库中

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 使用框架进行数据的爬取那,可以省去好多力气,如不需要自己去下载页面、数据处理我们也不用自己去写。我们只需要关注数据的爬取规则就行, scrapy在Python数据爬取框架中数据比较流行的,那么今天就用scrapy进行百度贴吧-黑中介贴吧数据的爬取。别问我为啥爬取黑中介吧的,因为我个...

[阅读更多 →]

Memcache 实时界面监控工具 -- memcachephp

Memcache监控工具 -- memcachephp Memcache 监控 1、说明 memcachephp是一款memcache图形界面的监控工具,可以通过这个工具查看到局域网内所有部署memcache机器或者端口的memcache的运行情况,对我们监控memcache的缓存命中率、cache利用率、点击率**等信息有很好的帮助作用。图形界面工具的推出,有助于我们性能测试工程师脱离命令行方式,避免多个memc...

[阅读更多 →]

Memcache 压力测试工具 -- memslap 使用教程

Memcache压力测试工具 -- memslap使用教程 Memcache,memslap Memcache监控工具 -- memcachephp http://ultrasql.blog.51cto.com/9591438/1638019/ 1、说明 Memslap是memcached服务器的压力测试工具,它能产生可配置压力环境,如:线程、并发、连接、运行时间、覆盖、命中率、key的长度、value的长度、ge...

[阅读更多 →]

MySQL 的奇技淫巧 - 避免重复插入数据

Mysql的奇技淫巧 - 避免重复插入数据 MySql 避免重复插入数据 通常那我们插入一条带有唯一性字段数据的时候,我们先去查一下数据库有没有相同数据,需要操作2次数据库,总感觉这样做特别的low,那么咱们来看下怎么操作一次数据库实现来这样的需求,当然这个唯一性数据要给他设置上主键索引或者唯一索引 1、初始演示表: (1) 测试表结构 字段 类型 是否null 默认 说明 id int no 主键...

[阅读更多 →]

【转】RabbitMQ 基础概念详细介绍

【转】RabbitMQ基础概念详细介绍 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎? 如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。 消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍 的RabbitMQ就是当前最主流的消息中间件之一。 ...

[阅读更多 →]

Windows 下安装 rabbitmq 的 PHP 扩展

windows下安装rabbitmq的php扩展 在windows下安装rabbitmq的PHP扩展,首先要通过phpinfo()函数查看php版本,php模块是32位的x86, 还是64位的x64,以及是否为线程安全的;然后,下载php扩展对应的dll文件, 分别配置php.ini文件和httpd-conf文件;最后,通过phpinfo()函数查看rabbitmq的php扩展是否已安装成功。 第1步:查看php版...

[阅读更多 →]

如何搭建优质的电商系统

如何搭建优质的电商系统 工作心得、电商系统 1、做轻重分离 (99%的浏览量最多才能对应1%的下单量) (1)用于浏览的数据放cache (2)重要的设立单独服务器空间 2、做好风控系统.(接口操作耗时等给技术做一个报表,接口操作耗时作为优评估标准之一) 所有的写操作(增、删、改)都要记录完善的日志,且记录下来:此次操作是否成功,以及耗时多少毫秒,如果不成功,还要记录当前所有环境变量,如果是数据库操作,最好把...

[阅读更多 →]

MySQL 性能测试&压力测试-mysqlslap

MySQL 性能测试&压力测试-mysqlslap MySQLSlap是从MySQL的5.1.4版开始就开始官方提供的压力测试工具。MySQLSlap通过模拟多个并发客户端并发访问MySQL来执行压力测试,同时提供了较详细的SQL执行数据性能报告,并且能很好的对比多个存储引擎(MyISAM,InnoDB等)在相同环境下的相同并发压力下的性能差别。 MySQLSlap特点是语法简洁,使用方便,可对mysql进行...

[阅读更多 →]

秒杀系统架构优化思路

一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如:12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。...

[阅读更多 →]