推荐阅读

人生苦短我用python[0x07] map() & reduce()

MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。--维基百科今天我们来看看python提供的map()和reduce()函数,可以帮助大家理解MapReduce的思想,用python代码理解还是挺直观的。map()map函数是把右边的输入列表元素作为左边函数的参数传入,并把函数返回值组织成对应的list结果返回>>

更新时间: 2017-06-22 16:48:40 0

nginx源码学习(一)-基本数据结构

nginx的作者为追求极致的高效,自己实现了很多颇具特色的nginx风格的数据结构以及公共函数。比如,nginx提供了带长度的字符串,根据编译器选项优化过的字符串拷贝函数ngx_copy等。ngxstrttypedefstruct{size_tlen;u_char*data;}ngx_str_t;ngxstrt只有两个成员,其中data指针指向字符串起始地址,len表示字符串的有效长度。注意,ngxstrt的data成员指向的并不是普通的字符串,因为这段字符串未必会以'\0'作为结尾,所以使用时

更新时间: 2017-06-22 16:21:59 0

API设计模式漫谈(二) - 设计和选型

现代社会是个契约社会,生活中大大小小的事情都在和契约打交道。而契约在软件工程上最基本的体现就是函数。当一个函数被定义出来时:它便告诉它的使用者,你我之间应该如何合作。比如说,一个函数可以是这样定义的:如果你传递给我类型为X的数据,我会返回给你类型为Y的结果,而且如果你传递相同的值进来,我给你相同的结果。这是purefunction,也是程序员最喜欢的契约形式,因为黑纸白字,清清楚楚,童叟无欺。更普遍的情况是不那么纯粹的函数:如果你传递给我类型为X的数据,我会返回给你类型为Y的结果,当然,如果结果

更新时间: 2017-06-22 16:19:30 0

Nginx+Redis实现反向代理和Session共享(一)

什么是正向代理和反向代理?正向代理假如我访问不了google,但是有个代理服务器可以访问google,那我可以通过连接这个代理服务器来访问google。正向代理是一个位于客户端和目标服务器之间的一个代理服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向目标服务器转交请求并将获得的内容返回给客户端。反向代理访问http://www.baidu.com,但是百度页面文件不是在访问的目标服务器上,目标服务器只是暗中从另外一台服务器获取页面文件,然后呈现给用户

更新时间: 2017-06-22 16:04:21 0

HTTP协议之CHUNK编码

(HTTP,HyperTextTransferProtocol)超文本传输协议,这个名字很容易让人觉得:只能用来传输文本信息,在这个协议的设计之初,也确实这样,HTTP协议的第一个正式版本-0.9版,被设计为只能用来响应HTML的文本信息,但是时过境迁,随着HTTP协议的日渐普及,单纯的传输文本信息已经不能适应大家的需求了,于是后续便出现了HTTP1.0版本,增加了二进制数据的传输支持,紧接着又在现在最为广泛使用的HTTP1.1版本中加入了更加先进的chunk协议来进行更加完善的二进制数据传输控

更新时间: 2017-06-22 15:35:21 0

人生苦短我用python[0x02] python执行shell命令(附例子)

今天为大家介绍如何使用python的commands模块调用linuxshell命令,同时附上一个实际例子给大家参考。1.commands库介绍commands库很简单,只有3个函数,其中一个是不建议使用的,所以今天就跟大家介绍2个函数commands.getstatusoutput(cmd)#这个函数执行cmd传递进来的命令,然后返回一个2-tuple(status,output),其中status是执行cmd的返回结果,output是执行cmd的输出内容。commands.getoutput

更新时间: 2017-06-22 14:53:59 0

人生苦短我用python[0x06] list分片与推导

list是python常用的内置类型,实现了一个列表的功能,今天我们主要讲列表的一些比较灵活好用的特性,其他常见简单的就不再一一描述。分片python的list分片list[下标开始:下标结束:步长],下标从0开始,可以忽略里面部分参数,参数也可以为负数。看如下几个例子>>>x=[0,1,2,3,4,5,6,7,8,9]>>>x[:5]#获取前面5个元素[0,1,2,3,4]>>>x[3:5]#获取下标第3个到下标5之前的元素,不包含下标5[

更新时间: 2017-06-22 14:49:36 0

人生苦短我用python[0x02] yield浅析

1.yield介绍先来几个单词翻译,根据词霸的翻译有以下截图一开始学习yield确实有点懵,yield在python,java,c#等语言都有,一开始在国内外各大网站都找了相关的资料学习这个yield,通常能找到的文章个人感觉都说得差不多一个意思,通过编写程序实践了一下,这篇文章试图以自己理解的角度来讲解python的yield,水平有限,难免有误,欢迎各路大神指正。在解析yield之前,我们先看一段代码#!/usr/bin/envpython#test带上了yield后就变成了个生成器了#参数

更新时间: 2017-06-22 14:48:02 0

Ceph的工作原理及流程

寻址流程Ceph系统中的寻址流程如下图所示:上图左侧的几个概念说明如下:File——此处的file就是用户需要存储或者访问的文件。对于一个基于Ceph开发的对象存储应用而言,这个file也就对应于应用中的“对象”,也就是用户直接操作的“对象”。Ojbect——此处的object是RADOS所看到的“对象”。Object与上面提到的file的区别是,object的最大size由RADOS限定(通常为2MB或4MB),以便实现底层存储的组织管理。因此,当上层应用向RADOS存入size很大的file

更新时间: 2017-06-22 14:39:50 0

url托管中心

什么是url托管?url托管实际就是把要一个url地址交付给托管中心,并且给该url配置一定的规则。其后托管中心就对url的配置进行分析,类似Linux的定时任务一样,托管中心能在配置指定的时间自动执行url的连接,并且把连接返回结果写入日志。url托管中心运作原理url托管中心配置规则类似Linux的crontab文件,url托管中心的配置格式为:f1f2f3f4f5f6urlf1:秒,数值取值范围【0-59】f2:分,数值取值范围【0-59】f3:时,数值取值范围【0-23】f4:天,数值取

更新时间: 2017-06-22 14:34:16 0

微信关注

获取更多技术咨询