自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 curl+exec实现异步无等待请求

一、背景  前天中午同事问我一个问题,他有一个需求就是在某个页面中需要调用一下第三方的一个地址,目的是第三方会根据你发的请求做一个统计。  问题分析:  1:对终端用户来说这个接口调用完全没有意义  2:如果接口响应(建立连接时间+响应时间)过慢,那么就会影响用户体验。  理想状态:  在页面的某个点捅一下这个接口完事,瞬间就继续往下走。二、解决方案1:

2014-02-14 13:45:00 4853

原创 .vimrc的autocmd用法

一、autocmd是一个十分强大的命令,在.vimrc中配置以后在打开vim的时候就会自动执行一些命令作为php程序员,我现在使用的就是创建.php文件的时候自动在文件中添加注释,还是灰常方便的。.vimrc中的配置代码如下autocmd BufNewFile *.php exec ":call SetTitle()"    func SetTitle()        cal

2014-01-23 13:42:59 13596

原创 网站安全之csrf攻击

一、简介CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相

2014-01-16 08:51:58 975

转载 php表单验证,防垃圾机器人刷表单

最近在看php核心技术与开发实践,里面的这段放垃圾机器人刷表单的程序分享一下,自己写了一个简单的表单提交 /** * 模拟机器人来发表微博评论 */ define('SECRET', '67%$#ap28'); function m_token() { $str = mt_rand(1000, 9999); $

2014-01-12 09:44:58 3061

原创 正则表达式的分组和反向引用

一、分组所谓分组就是为了实现多个字符绑定在一起而加括号把这一组字符限定为一个整体。比如我们要表达0个或者多个a那么可以直接a*而如果表达0ge或者多个ab那么就用括号把ab括起来(ab)*,这个时候ab就是一个分组。分组常用的的语法有:(exp):匹配exp,并且捕获文本到自动命名的组里。这里这个自动命名要理解一下,就是一个正则表达式里如果有多个组,如果你没有给组添加自己的名字,那

2014-01-06 23:51:57 1848

原创 关于上线系统

上线系统是由vriteam团队共同努力的结果,核心代码由我之前的同事编写完成,后来我们达成一致意见把他开源出来。现在回想起来也是很有意义的一件事,只是在国内的环境下想推进一个工具真的是非常不容易,而且上线系统是给予svn来做的,现在很多公司已经采用了git作为项目管理工具。这段时间自己也有所反思,毕竟上线系统的门槛还是有点高,很多人不愿意踏出这一步,这一步主要是思想上的一步,其实做任何事都

2014-01-02 09:36:34 1462

原创 php的reflection反射机制

今天在看php的relection反射机制,这玩意的开销还是比较大的,所以平时开发中我们不建议使用它。但是有些情况我们必须用到它,就是你在操作一个对象的时候不好找到他的具体类信息,那么这个时候你就必须用到他。或者我们去生成每个类的文档的时候,也需要(这个用的时候不需要考虑开销)reflectionObject或者reflecttionClass这两个类是php内置的,我们可以直接实例化

2013-12-31 12:39:12 1278

原创 php的魔术方法__get(),__set(),__call(),__callStatic()以及static延迟静态绑定

php5之后实现了一些魔术方法还是比较有意思的,之前一直用面向过程的编程方法,对oop研究的比较少,最近在看oop的东西,还是比较有意思的。魔术方法这些东西,感觉很大一部分就是为了偷懒用的,记得最早写php的时候,那时候做博客,用的是国外的一个叫lifetype的开源框架,那时候还是php4.3,但是那个框架里全部实现了对象,所有的数据都被封装到对象中。于是当从db里select出来一堆东

2013-12-29 16:56:33 10247

原创 集成式测试工具http_load

一、http_load简介  http_load基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。优点1.基于命令行,简单、易于上手2.小巧轻便,解压缩后不到100k3.开源,免费缺点1.仅适用于web页面的性能测试,不适用于访问数据库2.测试结果分析有限3.平台依赖linuxhttp

2013-12-27 09:28:44 1012

原创 centos6.3-64位搭建LAMP环境之安装php5.5.7

mysql和apache安装并且测试ok之后下一步就是安装php了。因为安装php的时候要往apache的配置文件里写东西,而且要把mysql集成进php,为了安全期间我把mysql和httpd都停掉了,pkill mysql  pkill httpd有点硬。然后是从php.net上下载php.5.5.7的源码包,php-5.5.7.tar.gz(sig) [16,424Kb]然后

2013-12-25 11:14:55 2185

原创 centos6.3-64位搭建LAMP环境之安装apache2.4.7

apache我也是安装的最新的2.4.7,可以到官网下载源码包:http://httpd.apache.org/download.cgi#apache24结果在./configure --prefix=/usr/local/apace --enable-so生成编译文件的时候,报了一个错误提示configure: error: APR not found. Please read the

2013-12-25 09:53:31 1490

原创 centos6.3-64位搭建LAMP环境之安装mysql5.6.15

昨天晚上在阿里云购买了自己的服务器,单核cpu,1G内存+送得20G硬盘,系统是centos6.3 64位安全加固版,网络带宽是2M。共花了980大元,虽然不是特别多对我来说意义还是非常重大的。终于有了一台自己的服务器了,可以在公网做一些自己的东西,外界也可以访问了。路通了,风险也大了,责任也大了。首先,需要安装自己的web服务器环境,php+mysql+apache,关于web服务器我考虑了

2013-12-25 09:22:07 1502 4

原创 php+nginx安装小记

这几天看了一下nginx的确是一个比较强大的玩意,试了它的负载均衡和反向代理等功能。对自己安装php+nginx过程中遇到的问题做一个小记。php+nginx的工作过程大体是这样的,首先web服务器启用自己的端口监听来自客户机的http请求,当客户机发起http请求到达服务器端的时候,服务器的进程会交给nginx来处理,所以我们要配置nginx的http模块,并且定义一个server,大体

2013-12-24 16:46:00 900

原创 http-headers服务器返回的首部错误码304

一、304定义Not Modiied,意即:客户端可以通过所包含的请求首部,使其请求请求变成有条件的。如果客户端发起了一个有条件的GET请求,而最近资源未被修改过的话,就可以用这个状态码来说明资源未被修改。带有这个状态码的响应不应该包含主体部分。我们要巧妙理解这这个定义,也相当于客户端和服务器端的一个条件约束,你问我要东西,我给你东西,并且我返回给你一个条件标识,(如果你发现这个标识,请你

2013-12-16 11:05:19 1065

原创 初试Linux shell

一、什么是LinuxLinux可以分为以下四部分:1.Linux内核2.GNU工具组件3.图形化桌面环境4.应用软件Linux内核:是LInux系统的核心,控制着计算机系统上的所有硬件和软件,必要时分配硬件,有需要时执行软件。内核基本负责以下四项主要功能:1.系统内存管理2.软件程序管理3.硬件设备管理4.文件系统管理1.操作系统内核的基本功能之一是

2013-12-12 17:55:08 656

原创 php-socket编程代码实例

最近在看计算机网络,对socket原语有了一个新的认识,发现php也可以支持socket编程,而且非常方便。而且大家可以查看php手册,里面有恨全面的socket操作函数。然后我就写了一个简单的实例,大家可以借鉴一下。首先说明一下,如果大家对socket不是很了解的话,那么现补充一下socket的知识。socket可以直接和传输层的tcp协议交互,然后实现端对端的数据传输,socket

2013-12-10 22:13:49 1201

转载 计算机网络--socket与http

一、简介首先socket是传输层用到的一组传输原语,俗称套接字原语,而http是应用层的协议。后来发展套接字成了一套完整的API可以和TCP协议进行通讯的一套API,并且已经成为抽象于应用层的传输服务的事实标准。套接字API通常与TCP协议结合用户下向用户提供一种成为可靠字节流(reliablebyte stream)的面向连接的服务。二、TCP协议建立起一个TCP连接需要经过

2013-12-10 16:52:42 962

原创 计算机网络--网络层

一、简介网络层是第三层,它关注的是如何将源数据包一路畅通的送到接收方。为了将数据包送到接收方,可能沿途要经过许多跳(hop)中间路由器。这种功能显然与数据链路层功能不同,数据链路层的目标没有那么宏伟,只要将帧从线路一边传送到另一边。因此,网络层是处理端到端数据传输的最底层。为了实现这个目标,网络层必须知道网络拓扑结构(即所有路由器和链路的集合),并从中选择出适当的路径,即使是大型网络也要选

2013-12-09 13:35:05 1215

原创 计算机网络--数据链路层

一、简介数据链路层属于第二层,数据链路层试使用物理层提供的服务在通信信道上发送和接受比特。它要完成一系列的功能包括:(1)向网络层提供一个定义良好的服务接口。(2)处理传输错误。(3)调节数据流,确保慢速的接收方不会被快速的发送方淹没。为了实现这个目标,数据链路层从网络层获得数据包,然后将这些数据包封装成帧(frame)以便传输。每个帧包含一个帧头、一个有效载荷(用于存放数据包

2013-12-09 11:52:43 1015

转载 计算机网络--面向连接的服务和无连接服务

一、面向连接的服务所谓连接是两个对等实体在通信前所执行的一组操作。包括申请存贮器资源,初始化若干变量,进行通信参数的协商等。面向连接服务与人们打电话类似,先通过呼叫操作获得一条可通话的电路,然后再通话,通话完毕再挂机,释放所占用的电路。面向连接服务也要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。

2013-12-09 11:07:01 3139

原创 计算机网络五层协议中的第一层--物理层

一、OSI参考模型OSI模型基于国际标准化组织(ISO,International Standards Orgnization)的提案,作为各层协议迈向国际化的第一步(Day 和 Zeimmermann,1983)并且于1995年进行了修订(Day,1995)。这个模型称为ISO的开放系统互连(OSI,Open Systems Interconnection)参考模型。OSI模型也是我们传

2013-12-07 20:09:29 5340 1

原创 php中使用Redis构建高效框架系统

首先需要做两步1.安装php对redis的扩展模块php官方没有redis的模块和使用方法。打开redis的官方网站,redis.io然后选择clients里找到php的模块然后选中phpredis进入Repository之后就可以看到php对redis的所有方法首先我们看到是对phpredis的一个介绍,是一个高效的key-value存储系统,是被php的官方授权

2013-12-05 17:51:32 1168

转载 Redis2.4配置文件中文版

# Redis示例配置文件# 注意单位问题:当需要设置内存大小的时候,可以使用类似1k、5GB、4M这样的常见格式:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*

2013-12-05 16:21:50 866

原创 NoSQ之Redis高级应用--虚拟内存使用?

简介关于虚拟内存我发现2.4.x还可以使用,但是目前官网能找到的两个版本,2.6.16和2.8.1都不能使用了。也不知道是个什么情况,找相关资料也没找到。希望有明白的朋友给个链接。

2013-12-05 14:45:51 718

原创 NoSQL之Redis高级应用--发布及订阅消息

一、简介发布订阅(pub/sub)是一种消息通信模式,主要的目的是解除消息发布者和消息订阅者之间的耦合,Redis作为一个pub/sub的server,在订阅者和发布者之间祈祷了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将消息类型称为通道(channel)。当发布者通过publish命令向redis

2013-12-05 13:53:18 2149

原创 NoSQL之Redis高级命令详解--持久化机制

Redis的持久化机制Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中得数据同步到硬盘来保证持久化。Redis目前支持两种持久化方式:1.snapshotting(快照)也是默认的方式---把数据做一个备份2.Append-only file(缩写aof)的方式---将写,更改,删除等操作存到文件中一种将数据存到文件中,而另一种是将操作存到文件中。

2013-12-05 11:54:07 1161

原创 NoSQL之Redis高级实用命令详解--事务处理

一、事务处理Redis对事务的支持目前还比较简单。Redis只能保证一个client发起的事务中的命令可以连续执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令。四、持久化机制五、发布订阅消息

2013-12-05 10:34:11 2321

原创 NoSQL之Redis高级实用命令详解--安全和主从复制

一、安全性为redis设置密码:设置客户端连接后进行任何其他指定前需要实用的密码。警告:因为redis速度非常快,所以在一台较好的服务器下,一个外部用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。修改密码的方法:只需要在redis的配置文件redis.conf中开启requirepass就可以了,比如我设置我的访问密码是mypasswo

2013-12-04 12:33:43 26191 1

原创 NoSQL之Redis常用命令--服务器相关命令

1.ping:测试服务器是否存活127.0.0.1:6379> pingPONGping pong类似于打乒乓球,pong说明服务器有相应。然后我们把redis关闭掉127.0.0.1:6379> pingCould not connect to Redis at 127.0.0.1:6379: Connection refused可以看到已经连接不上了然后再启动r

2013-12-04 10:37:54 1263

原创 NoSQL之Redis常用命令--键值相关命令

一、简介Redis提供了丰富的命令对数据库和各种数据类型操作,这些命令可以在Linux终端使用。二、常用命令讲解1.keys pattern:返回给定pattern的所有key127.0.0.1:6379> keys zset*1) "zsetkey"2) "zsetkey1"127.0.0.1:6379> keys set*1) "setkey5"2) "se

2013-12-03 21:30:13 865

原创 NoSQL之Redis对zset(有序集合)数据类型的操作

一、简介Sorted set(zset)是set的升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新得值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。二、有序集合的操作方法1.zadd key score member:向名称为key的zset中添加元素me

2013-12-03 17:13:56 6517

原创 NoSQL之Redis对set(集合)数据类型的操作之二

7.sinter setkey1 setkey2 setkey3...:返回setkey1和setkey2的交集127.0.0.1:6379> smembers setkey11) "world"2) "hello"3) "2000"127.0.0.1:6379> smembers setkey21) "3000"2) "world"3) "2000"127.0

2013-12-03 13:51:51 759

原创 NoSQL之Redis对set(集合)数据类型的操作之一

一、简介  Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。

2013-12-03 10:12:49 1080

原创 NoSQL之Redis对lists类型的操作

一、简介  list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中的key理解为链表的名字。Redis的list类型其实就是一个每一个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,也可以作为队列。二、栈跟队列的特性1.栈:先进后出。如果把1,2,3放到栈中,那么顺序是3,2

2013-12-02 17:15:24 793

原创 NoSQL之Redis对数据类型hash的操作

一、简介Redishash是一个string类型的field和value的映射表。它的添加、删除操作都是O(1)(平均)。hash特别适合存储对象,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

2013-12-02 08:48:25 822

原创 NoSQL之Redis对string数据类型的操作

一、简介  String是最简单的数据类型,一个Key对应一个Value,String类型是二进制安装的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

2013-12-01 21:03:47 808

原创 NoSQL之Redis的介绍与安装

简介  官方定义:Redis is an open source,advanced key-value store.It is often referred to as a data structure server since keys can containstrings,hashes,lists,sets and stored sets.

2013-12-01 18:25:31 1074

原创 关于NoSQL

自述  从09年以来nosql被推崇到了一个比较高的地位,纯粹的php+mysql已经不能满足日益增长的互联网用户高并发的需求。05年接触互联网开发,最早用到的nosql思想就算是文件缓存和页面静态化了,这些也都是为了减轻数据库的压力。后来接触到memcached这个高性能的nosql工具,但是一直也没有好好研究,处在一个可以用得水平,直到前几天面试,才知道自己已经非常落后了,而且

2013-12-01 17:44:51 758

phpredis使用实例--用户管理

主要功能包括 用户创建 用户登录 用户列表(支持分页) 用户管理:删除,编辑 用户关注 用户粉丝 以上主要是后端功能(php+redis)的实现,前端页面没写样式,大家将就着看吧。

2013-12-06

phpredis命令中文文档.doc

phpredis的中文命令整理,格式是word的大家下载的时候注意。

2013-12-06

空空如也

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

TA关注的人

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