- 博客(32)
- 资源 (19)
- 收藏
- 关注
原创 分布式任务系统gearman及python实例
Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,开源、多语言支持、灵活、快速、可嵌入、可扩展、无消息大小限制、可容错,与Hadoop相比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gea
2015-03-03 11:28:14
6882
原创 Python高级编程之装饰器
装饰器是在Python2.4中新加入的,它使得函数和方法封装(接收一个函数并返回增强版本的一个函数)更容易阅读和理解。原始的使用场景是可以将方法在定义的首部将其定义为类方法或静态方法。在添加装饰器之前,相应的语法如下:class WhatFor(object): def it(cls): print 'work with %s' % cls it = c
2015-01-02 22:22:59
942
原创 Python高级编程之数据库sqlite3(一)
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PH
2014-12-28 21:10:29
3976
原创 Python高级编程之协同程序
1. 协同程序协同程序可以挂起、恢复,并且有多个接入点的函数。有些语言本省就提供了这种特性,如Io语言和Lua语言,它们可以实现协同的多任务和管道机制。例如,每个协同程序将消费或生成数据,然后暂停,知道其他数据被传递。在Python中,协同程序的替代者是县城,它可以实现代码块之间的交互。但是因为它们表现出一种抢先式的风格,所以必须注意资源所,而协同程序不需要。这样的代码可能变得相当复杂,难
2014-12-27 17:14:50
1631
原创 Python高级编程之迭代器与生成器
1.迭代器迭代器只不过是一个实现迭代器协议的容器对象,它基于两个方法:next返回容器的下一个项目__iter__返回迭代器本身迭代器可以通过使用一个iter内建函数和一个序列来创建:In [1]: i = iter('abcd')In [2]: i.next()Out[2]: 'a'In [3]: i.next()Out[3]: 'b'In [4]: i.
2014-12-27 14:13:11
927
翻译 Python获取ip地址
1. 获取ip/MAC地址等 获取本地ip地址首先想到的命令是ifconfig,然后从结果中提取出ip地址,Python代码如下:def get_ip(): cmd = "/sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}'" pi
2014-12-25 16:28:16
6795
原创 Redis基础之管道
客户端和Redis使用TCP协议连接。不论是客户端享Redis发送命令还是Redis向客户端返回命令的执行结果,都需要经过网络传输,这两个部分好事称为往返延迟。根据网络性能的不同,往返延迟也不同。大致来说,本地回环地址(loop backaddress)的往返延迟在数量级上相当于Redis处理一条简单的命令的时间。如果执行较多的命令,每个命令的往返延时累加起来对性能还是有一定的影响。在执行多个
2014-12-25 00:29:09
1688
原创 Redis基础之消息通知
无论是软件还是网站,业务逻辑往往是复杂的,有些模块往往需要经过复杂的运算查询等耗时较长的操作,为了避免与之关联的模块等待太久,应该使用独立的线程来完成这类操作。不过一些编程语言或者框架不易实现多线程,这时很容易想到通过其他进程来实现。进程间实现了异步,而进程间的通信可以实现消息通知的方式。通知的过程可以借助任务队列来实现。任务队列顾名思义就是“传递任务的队列”。与任务队列进行交互的实体有两类,
2014-12-22 23:04:48
1215
原创 Redis基础之排序
集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis的作者在设计Redis的命令时就考虑到了不同数据结果类型的使用场景,对于不常用到或者在不损失过多性能的前提下可以使用现有命令来实现功能,Redis就不会单独提供命令来实现。这一原则使得Redis在拥有强大功能的同时保持相对精简的命令。有序集合常见的使用场景是大数据排序,如游戏玩家的排行榜,所以很少会需要获得键中的
2014-12-20 12:50:05
661
原创 python运维之paramiko
paramiko是使用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式远程连接服务器。本文简要介绍了paramiko远程机器命令的执行、交互模式登陆和文件上传下载等方法。
2014-12-10 22:53:31
28290
原创 Redis基础之事务
Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的应用非常普遍,如银行转账过程中A给B汇款,首先系统从A账户中将钱划走,然后在B的账户中增加相应的金额。这两个步骤必须属于同一事务,要么全执行,要么都不执行。事务的原理是先将属于一个事务的命令发给Redis,然后让Redis依次执行这些命令。
2014-12-08 22:40:13
925
原创 python删除过期log文件
1. 用Python遍历目录os.walk方法可以很方便的得到目录下的所有文件,会返回一个三元的tupple(dirpath, dirnames, filenames),其中,dirpath是代表目录的路径,dirnames是一个list,包含了dirpath下的所有子目录的名字,filenames是一个list,包含了非目录的文件,如果需要得到全路径,需要使用os.path.join(dir
2014-12-07 00:32:11
1890
原创 sed引入shell变量的方法
1. sed使用外部变量eval sed ’s/$a/$b/’ filenamesed "s/$a/$b/" filenamesed ’s/’$a’/’$b’/’ filename sed s/$a/$b/ filename2. sed使用外部命令sed命令使用单引号的情况下使用'`shell command`'或者'$(shell command)'引用命令执行
2014-11-27 13:52:57
1108
原创 redis基础之数据类型--列表类型
列表类型(list)可以存储一个有序的字符串列表,常用的操作室向列表两端添加元素,或者获得列表的某一个片段。列表类型内部是使用双向链表(double linked list)实现的,所有向列表两端添加元素时间复杂度为O(1),获取越接近两端的元素速度就越快。这意味着即使是一个有几千万个元素的列表,获取头部和尾部的记录也是极快的。不过使用链表的代价是通过索引访问元素比较慢,必须从头或者尾开始索引。这
2014-11-08 15:12:43
540
原创 python-signal异步事件
信号时一个系统的特性,它提供了一个途径可以通知程序发生了一个事件并异步处理这个时间。信号可以由系统本身产生,也可以从一个进程发送DOA另一个进程。由于信号会中断正常控制流,如果在中间接收到信号,这些操作(特别是IO操作)可能产生错误。Python在signal模块中作为符号提供了适合不同平台的多种信号。
2014-11-06 09:18:16
1351
原创 利用scribe管理log文件
from config import *from scribe_logger.logger import ScribeWriterscribe_writer = ScribeWriter(config.SERVER_LOG, config.SERVER_LOG_PORT, default_category='')def scribewrite(category, *argv):
2014-10-27 16:23:11
1256
原创 linux的w命令
在终端中打w,可看到如下信息:10:56:30 up 1:27, 2 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATLincon tty1 :0 10:02 9:27m 11.
2014-08-18 11:01:13
736
Kubernetes in action
2017-11-30
Mastring Rust
2017-06-17
VC++与 Matlab 混合编 程 的快速实现
2011-08-18
matlab 2009a 汉化包
2010-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人