`
文章列表
使用python开发RabbitMQ应用 (参考了RabbitMQ网站上提供的英文版本入门指南: http://www.rabbitmq.com/getstarted.html)   测试环境:CentOS 6.2 1,测试环境准备 安装python(一般系统都自带了python) 安装RabbitMQ server可以参考前面的文章。 安装pika 使用pip安装的时候可能会报错: importerror no module named pkg_resources 请用下面命令解决这个问题: $ curl https://bitbucket.org/pypa/setu ...
***在 CentOS 6.4上安装python*** 注意啊,自己手动安装python2.7.5,不要动系统上面其他的版本 1,先安装GCC,用如下命令yum install gcc gcc-c++  yum install zlib yum install zlib-devel 2,下载python-2.7.5.tar.gz文件,修改文件权限chmode +x python-7.5.tar. ...
纯归并排序的复杂度为: O(nlgn),而纯插入排序的时间复杂度为:O(n^2)。数据量很大的时候采用归并排序 但是在n较小的时候插入排序可能运行的会更快点。因此在归并排序中当子问题变得足够小时,采用插入排序来使得递归的叶子变粗可以加快排序速度。那么这个足够小到底怎么去衡量呢? 请看下面: 这么几个我不证明了,比较简单: A,插入排序最坏情况下可以在O(nk)时间内排序每个长度为k的n/k个子列表 B,在最坏情况下可在O(nlg(n/k))的时间内合并这些子表 C,修订后的算法的最坏情况运行时间复杂度是O(nk + nlg(n/k)) 那么,O(nk+nlg(n/k))=O(nl ...
先介绍下最常见的元字符metacharacter: literal      匹配字符串的值    foo re1|re2   匹配正则式re1或re2    foo|bar .              匹配一个任何字符(换行符除外)  b.b ^              匹配字符串开始           ^Dear $             匹配字符串结束            /bin/*sh$ *              匹配前面出现的零次或多次      [A-Za-z0-9]* +             匹配前面出现的一次或多次       [a-z]+\ ...
引用计数算法: 判定一个对象是否还存活,一个比较简单的算法就是引用计数算法。比较著名案例就是微软的COM技术、使用ActionScript 3的FlashPlayer、Python语言以及游戏脚本中的Squirrel都利用这个算法进行内存管理。但是Java中并没有使用这项技术,主要原因是循环引用问题。   根搜索算法: 在主流的商用程序语言中,包括Java、C#、Lisp等都使用的是根搜索算法 GC Root Tracing判定对象是否存活。任何对象到GC Roots的路径不可达的时候就认定需要回收了,而不管它们之间的循环引用。 在Java中,可作为GC Roots的对象包括下面几 ...
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 按照《Java虚拟机规范(第2版)》的规定,Java虚拟机所管理的内存将包括以下几个运行时数据区域,来个图更加直观点,如下图所示:   解释下各个部分   程序计数器: Program Counter Register是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 每个线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。   J ...
# coding: utf-8 __author__ = 'Administrator' # 冲突函数 # 如果下一个皇后和正在考虑的前一个皇后的水平距离为0, # 或者等于垂直距离(在一条对角线上),返回True def conflict(state, nextX): nextY = len(state) for i in range(nextY): ...
从淘宝网的技术架构中总结几个比较有用的: 应用拆分后,各个模块之间的同步调用,可以使用HSF框架 异步消息通知框架 -- Notify 缓存使用Redis Session使用Tbsession框架 分布式数据访问,分库分表后统一数据访问层,使用TDDL框架,工具有Rtools/JAPE,用于数据备份、复制、主备切换等。   如果是用python: django做前台,flask或者web.py做API, rabbitmq做消息代理,celery做异步任务,redis做緩存和高速消息交換。。。我觉得都快成模板了。。。     本人博客已搬家,新地址为:http://www ...
,1,RDB方式持久化: save 900 1 save 300 10 save 60 10000 dir配置目录,dbfilename配置持久化db文件。redis通过快照复制内存数据到快照文件中,然后替换dbfilename文件,实现一次快照持久化操作。   2,AOP方式 append only file方式配置: ...
1,redis事务 redis中的事务transaction是一组命令集合,要么都执行,要么都不执行。 # MULTI # SADD "user:1:following" 2 # SADD "user:2:followers" 1 # EXEC redis将客户端发送的事务执行链放入一个队列queue中,然后接受到EXEC请求后才顺序执行这个命令串,同时保证执行这些的时候不被其他命令打扰。 错误处理: * 语法错误,redis直接返回错误,连语法正确的其他命令也不会执行 * 运行错误,只有那条出错的语句不会执行成功,其他照样执行 r ...
1,KEYS pattern,获得符合规则的键名列表 glob风格的通配符规则: ?  匹配一个字符 * 匹配任意个包括0个字符 []匹配任一个字符,可以使用-表示一个范围 \x 匹配x,用于转义字符 KYES命令需要遍历redis中所有键,当键数量较多 ...
4)sets     Redis的set是string类型的无序集合。set元素最大可以包含(2的32次方)个元素。   set的是通过hash table实现的,所以添加、删除和查找的复杂度都是O(1)。hash table会随着添加或者删除自动的调整大小。需要注意的是调整hash table大小时候需要同步(获取写锁)会阻塞其他读写操作,可能不久后就会改用跳表(skip list)来实现,跳表已经在sorted set中使用了。关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过 ...
1)strings类型及操作     string是最简单的类型,你可以理解成与Memcached是一模一样的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似。但它的功能更丰富。   string类型是二进制安全的。意思是redis的string可 ...
一 Redis介绍      Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。     Redis能运行在大多数POSIX(Linux, *BSD, OS X 和Solaris等)系统上,官方没有支持Windows的版本。目前最新的版本是2.2.11,这个版本主要是修复了一个2.2.7版本中遍历方式优化带来的一个bug。   和普通的Key-Value结构不同,Redis的Key支持灵活的数据结构,除了strings,还有hashe ...
先推荐几本好书: 1.《鸟哥的Linux私房菜-基础学习篇》-- 鸟哥 2.《Linux Shell 脚本攻略》-- Sarath Lakshman 3.《鸟哥的Linux私房菜-服务器架设篇》-- 鸟哥 4.《Unix环境高级编程》-- W.Richard... 5.《Linux系统编程》 -- Robert Love 6.《Linux内核设计的艺术》-- 新设计团队 7.《Linux内核设计与实现》--Robert Love   1,查找已安装软件并卸载 rpm -qa|grep libevent # 查看系统是否带有该安装软件,如果有执行命令: rpm -e li ...
Global site tag (gtag.js) - Google Analytics