自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 防止表单重复提交的八种简单有效的策略

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

2016-09-28 21:25:44 84422 5

原创 微信开发网页授权

一、什么是OAuth2.0官方网站:http://oauth.net/   http://oauth.net/2/权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. O

2016-09-26 16:22:36 2970

原创 微信公众平台开发接口PHP SDK完整版

<?php /* 方倍工作室 http://www.fangbei.org/ CopyRight 2015 All Rights Reserved */ define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echos

2016-09-23 21:09:39 1112

原创 微信解读

<?php/** * wechat php test *///define your tokendefine("TOKEN", "weixin");define("appID","wx8c42d48c5078c823");define("appsecret","eca3c0bc520a3a439dd408cfffeb84cc");$wechatObj = new wechat

2016-09-23 21:07:04 647

原创 实现一个简单的服务端推送方案-实例篇Push

这篇讲Push,即浏览器客户端被动等待无须轮循,服务器连不间断的向前端推送服务器当前时间。客户端代码,JS库为prototype.js: Comet demo The server time will be show

2016-09-23 20:30:06 1115

转载 Web应用中的轻量级消息队列

原文地址:http://hi.baidu.com/thinkinginlamp/blog/item/27a18202578f3d054bfb511f.htmlWeb应用中为什么会需要消息队列?主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达mysql,直接导致无数的行锁表锁,甚至最后请求会堆积过多,

2016-09-23 16:56:48 546

原创 秒杀场景下MySQL的低效原因和改进

在「中国数据库技术大会」上,淘宝分享了「秒杀场景下MySQL的低效」,详细分析了秒杀的技术难点及改进措施,简而言之,主要就是在高并发事务请求的情况下,数据库性能由于死锁检测等因素直线下降,在这种场景下,单纯的关闭死锁检测虽然可以提升一定的性能,但这顶多是治标而已,如何治本?淘宝给出来两个改进方法请求排队:如果请求一股脑的涌入数据库,势必会由于争抢资源造成性能下降,通过排队,让请求从

2016-09-23 16:51:33 687

转载 memcache的最佳实践方案

基本问题1、memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

2016-09-23 16:46:11 537

原创 redis设计思想

不同于nginx的精雕细琢,redis代码的风格趋向于简洁实用。简洁启事,下面所述不再列举任何源码,不拼凑任何外来资料。去除末枝,下面直入redis主题,尽可能简洁地描述redis的设计思想。整体模型:单进程单线程事件驱动模式。Redis在主处理流程中,采用了单进程接受各种client请求并返回结果,整体处理流程采用事件驱动的方式进行。通过其IO复用的方式监听aeEventLoop

2016-09-23 16:41:26 311

转载 再谈Redis应用场景

一、MySql+Memcached架构的问题实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:1)MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。2)Memcached与My

2016-09-23 16:40:12 388

原创 jquery实现擦除效果

刮刮卡 Your browser does not support the HTML5 canvas tag. Your browser does

2016-09-22 10:13:24 409

原创 windows下 composer常见问题及处理

windows下 composer常见错误及处理。错误一:Warning: This development build of composer is over 30 days old. It is recommended to update it by running "C:\ProgramData\ComposerSetup\bin\composer.phar self

2016-09-22 09:08:44 696

原创 php RSA 加密解密实例

PHP服务端与客户端交互、提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密1、加密解密的第一步是生成公钥、私钥对,私钥加密的内容能通过公钥解密(反过来亦可以)下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录...

2016-09-20 21:47:43 447

原创 mysql备份

备份的本质就是将数据集另存一个副本,但是原数据会不停的发生变化,所以利用备份只能回复到数据变化之前的数据。那变化之后的呢?所以制定一个好的备份策略很重要一、备份的目的做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用二、备份需要考虑的问题可以容忍丢失多长时间的数据;恢复数据要在多长时间内完; 恢复的时

2016-09-19 11:53:35 285

转载 如何解决秒杀的性能问题和超卖的讨论

最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。 一、

2016-09-18 15:12:30 546

原创 缓存穿透与缓存雪崩

缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,如果有人恶意破坏,很可能直接对DB造成影响,这就失去了缓存的意义。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据

2016-09-18 15:03:37 236

原创 为mysql master主机新建一slave并监控slave一致性

搭建环境master:172.16.18.114,正式服务器,MySQL运行中现要为master新建一slave,172.16.18.165,并监控其延迟步骤如下:1. 配置master服务器修改my.cnf:log-bin=mysql-binsync_binlog = 0server-id = 1binlog_format = ROW如果主库原来没有设

2016-09-18 14:47:00 776

转载 每秒处理10万订单乐视集团支付架构

http://geek.csdn.net/news/detail/72973随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定的完成支付尤为重要。所以在15年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的支撑。一、库分表在r

2016-09-18 14:12:19 670

转载 58同城数据库架构最佳实践

http://geek.csdn.net/news/detail/52070数据库的基本概念基本概念这一块,主要是让大家就一些数据库方面的概念达成一致。首先是“单库”,最初的时候数据库都是这么玩的,几乎所有的业务都有这样的一个库。接下来是“分片”,数据库的分片是解决数据量大的问题。如果数据量非常大,就要做水平切分,有一些数据库支持auto sha

2016-09-18 14:10:45 1296

原创 Redis的高级实用特性——发布及订阅消息

发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub/sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub的server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅

2016-09-17 21:41:13 287

原创 PHP-redis中文文档

启动 Redis 服务src/redis-server或者src/redis-server redis.confsrc/redis-server redis.conf 1>log.log 2>errlog.log1为标准输出,2为错误输出将 Redis 作为 Linux 服务随机启动vi /etc/rc.local, 加入代码:/root/install/red

2016-09-17 21:18:18 398

原创 RDB和AOF持久化对比

Redis提供了RDB持久化和AOF持久化,本篇文章中将会对这两种机制进行一些对比RDB机制的优势和略施RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改

2016-09-17 16:27:32 927

原创 yum安装php7.0可以改变yum源

1.如果之前已经安装我们先卸载一下yum remove php php-common 2.由于linux的yum源中的PHP不是最新版本,所以我们使用https://webtatic.com/的yum源来安装,可以直接参考https://webtatic.com/packages/php70/rpm -Uvh https://dl.fedoraproject.org/pub/epel/e

2016-09-12 11:43:47 1023

原创 ab压力测试

3.用/usr/local/apache/bin/ab来测试压力  不过还有一个工具叫webbench也可以测试。[root@zh888 bin]# /usr/local/apache/bin/ab -n 100 -c 100 http://192.168.100.1:8000/index.php//参数很多,一般我们用 -c 和 -n 参数就可以了,这个表示同时处理100个请求并

2016-09-12 11:27:40 433

原创 linux 系统性能指标

一、查看CPU使用情况cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。1、良好状态指标CPU利用率:User

2016-09-12 09:48:43 601

原创 linux下查看cpu物理个数和逻辑个数

hadoop@chw-desktop3:~$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 3.00GHz stepping : 9 micro

2016-09-12 09:39:53 387

原创 linux的top命令参数详解

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU

2016-09-12 09:37:42 330

原创 Nginx配置性能优化

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必须更深入一些。在本指 南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是...

2016-09-09 21:12:41 469

原创 MySQL优化必须调整的10项配置

即使是经验老道的人也会犯错,会引起很多麻烦。所以在盲目的运用这些推荐之前,请记住下面的内容:一次只改变一个设置!这是测试改变是否有益的唯一方法。大多数配置能在运行时使用SET GLOBAL改变。这是非常便捷的方法它能使你在出问题后快速撤销变更。但是,要永久生效你需要在配置文件里做出改动。一个变更即使重启了MySQL也没起作用?请确定你使用了正确的配置文件。请确定你把配置放在

2016-09-06 19:46:46 354

原创 MySQL运行状态show status详解

要查看MySQL运行状态,要优化MySQL运行效率都少不了要运行show status查看各种状态,下面是参考官方文档及网上资料整理出来的中文详细解释,不管你是初学mysql还是你是mysql专业级的dba,这都是值得看的.状态名作用域详细解释Aborted_clientsGlobal由于客户端没有正确关闭连接导致客户端终止而

2016-09-06 19:45:39 1279

原创 apache的性能调优 MaxClients 与MaxRequestsPerChild

1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)MPM是Apache的核心,它的作用是管理网络连接、调度请求。Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管 理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apac

2016-09-06 19:44:46 2438

原创 nginx+php-fpm出现502 bad gateway错误解决方法

nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了客户端502错误。服务器出现502的原因是连接超时 我们向服务器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错,因此如果你

2016-09-05 15:27:58 1305

原创 YSLOW法则中,为什么yahoo推荐用GET代替POST?

原文链接:http://www.cnxct.com/use-get-for-ajax-requests-why/POST请求分两步:发送http headers,再发送http data其中,提到firefox大部分版本在XP、WIN7、UBUNTU、MAC OS等系统上都是以1个包来实现的,其他常见浏览器都是分为两个包。相比大家很清楚的知道,HTTP(TCP)完成一次事务,通讯次

2016-09-05 11:05:33 275

原创 [搜索引擎]Sphinx的介绍和原理探索

原文参考 链接:http://www.cnblogs.com/h-hq/p/5408933.htmlCoreSeek(Sphinx)安装与mmseg词库扩展 :http://devzc.com/post/441sphinx增量索引和主索引来实现索引的实时更新 : http://www.cnblogs.com/mingaixin/p/5085708.htmlsphinx/

2016-09-01 21:40:39 891

原创 MySQL存储引擎--MyISAM与InnoDB区别

MySQL默认采用的是MyISAM。MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的,My

2016-09-01 14:25:21 495

空空如也

空空如也

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

TA关注的人

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