php高级特性yield生成器

在PHP5.5以上的版本有一个新的特性yield生成器,提供了一种更简单的可实现 Iterator 同样功能的方法。

PHP手册里的解释:

生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。

生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会使你的内存达到上限,或者会占据可观的处理时间。相反,你可以写一个生成器函数,就像一个普通的自定义函数一样, 和普通函数只返回一次不同的是, 生成器可以根据需要 yield 多次,以便生成需要迭代的值。

看了似乎也不明白,解释的比较晦涩,还是看下代码来的直接。

– 阅读剩余部分 –

mongodb复本集配置

副本集具有故 障自动切换和自动修复成员节点,各个DB之间数据完全一
致等特点。与主从复制相比,最为显著的区别在于,副本集没有固定的主节点,它是 整个集群选举出得一个主节点,当其不工作时变更其他节点

部署Replica Sets

正常情况下,mongodb是应该部署在多台服务器上的,我这里只是测试,就部署一台服务器上了,下面启动了三个实例进行实验

– 阅读剩余部分 –

mongodb主从复制配置

MongoDB 支持在多个机器中通过异步复制达到故障转
移和实现冗余。多机器中同一时刻只有一台是用于写操作。
正是由于这个情况,为 MongoDB 提供了数据一致性的保
障。

MongoDB 的主从集群分为两种:
Master-Slave 复制 (主从)
Replica Sets 复制 (副本集)

– 阅读剩余部分 –

linux shell 字符串操作(长度,查找,替换)详解

原文链接:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html

在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。

– 阅读剩余部分 –

systemctl命令用法

对比表,以 apache / httpd 为例
任务 旧指令 新指令
使某服务自动启动 chkconfig –level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig –level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service

(服务详细信息)

systemctl is-active httpd.service

(仅显示是否 Active)
显示所有已启动的服务 chkconfig –list systemctl list-units –type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

mail使用外部邮箱地址发送邮件

linux下的mail命令会默认使用本地sendmail或者postfix发送邮件,这样要求本地的机器必须安装和启动Sendmail或者postfix服务,这两个配置都非常麻烦,而且会带来不必要的资源占用。

通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail和postfix而用外部的smtp服务器发送邮件的目的:

– 阅读剩余部分 –

php常用排序算法

排序的几个要点

  1. 什么叫做排序?
  2. 内排序和外排序
  3. 什么是稳定的排序算法?
  4. 正序和逆序比较次数是一样的
  5. 评价排序算法的标准有:执行时间所需的辅助空间,其次是算法的稳定性

– 阅读剩余部分 –

深入http协议二

浏览器缓存机制

Expires

Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。

Cache-control

Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires

– 阅读剩余部分 –

深入http协议一

HTTP协议概念

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。

HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。
通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。
应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。
在用户代理和源服务器中间可能存在多个“中间层”,比如代理、网关或者隧道(tunnel)。

– 阅读剩余部分 –

TCP/IP三次握手与四次挥手

TCP协议

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内,另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

– 阅读剩余部分 –