摘要: RabbitMQ知识总结 AMQP协议 AMQP协议是一个提供统一消息服务的应用层标准协议,并不会受到客户端/中间件不同产品、不同开发语言等条件的影响。RabbitMQ则是基于该协议实现的。 举个例子来说,如下图,生产者将消息发送到交换机上,交换机接收到信息以后按照相应的路由键路由到队列中,这里的交阅读全文
posted @ 2017-07-27 11:28 banananana 阅读(652) 评论(4) 编辑
摘要: 最短路径算法 最短路径算法通常用在寻找图中任意两个结点之间的最短路径或者是求全局最短路径,像是包括Dijkstra、A*、Bellman-Ford、SPFA(Bellman-Ford的改进版本)、Floyd-Warshall、Johnson、BFS等等,这里要集中介绍Dijkstra和Floyd,前阅读全文
posted @ 2017-07-26 08:11 banananana 阅读(276) 评论(1) 编辑
摘要: 最小生成树算法 一个连通图可能有多棵生成树,而最小生成树是一副连通加权无向图中一颗权值最小的生成树,它可以根据Prim算法和Kruskal算法得出,这两个算法分别从点和边的角度来解决。 Prim算法 理解 Prim算法从单一顶点开始,其按照以下步骤逐步扩大树中所包含顶点的数目,直到遍及连通图的所有顶阅读全文
posted @ 2017-07-20 14:35 banananana 阅读(216) 评论(0) 编辑
摘要: Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用。 collections ChainMap 这是一个为多个映射创建单一视图的类字典类型,也就是说,它同样具有字典类型的方法,它比基础数据结构中的字典阅读全文
posted @ 2017-07-19 11:38 banananana 阅读(171) 评论(2) 编辑
摘要: Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况;还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们常说的NoSQL,其并不需要一开始去创建好表结构,可以存储自定义的数据;还有Redis是分布式的,阅读全文
posted @ 2017-07-16 17:03 banananana 阅读(156) 评论(0) 编辑
摘要: 6. Wildcard Matching 题目 Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character.'*' Matches any sequence of阅读全文
posted @ 2017-07-15 15:24 banananana 阅读(26) 评论(0) 编辑
摘要: 关于非阻塞connnect的总结 在面试题中,看到有关于阻塞connect和非阻塞connect的区别; 显然,我们可以从阻塞和非阻塞的意思来回答,既然是阻塞,那么执行connect的操作会一直阻塞到连接超时或者连接成功才会返回相应的信息,而非阻塞connect则不管是否连接成功,都会立即返回信息。阅读全文
posted @ 2017-07-12 16:56 banananana 阅读(36) 评论(0) 编辑
摘要: 正则表达式总结 正则表达式的语法里面分为字符、预定义字符、数量词、边界匹配、逻辑分组、特殊构造,如图: 先介绍Python中支持正则表达式的re模块中的方法,使用什么函数都大同小异,重要的是正则表达式。 比如说邮箱,我们分析它的结构,其是一个前面为字符和数字组成,中间一个@,跟着字符和数字,后面是.阅读全文
posted @ 2017-07-11 23:15 banananana 阅读(94) 评论(0) 编辑
摘要: LRU算法总结 无论是哪一层次的缓存都面临一个同样的问题:当容量有限的缓存的空闲空间全部用完后,又有新的内容需要添加进缓存时,如何挑选并舍弃原有的部分内容,从而腾出空间放入这些新的内容。解决这个问题的算法有几种,如最近使用算法(LRU)、先进先出算法(FIFO)、最近最少使用算法(LFU)、非最近使阅读全文
posted @ 2017-07-08 15:39 banananana 阅读(97) 评论(0) 编辑
摘要: PiperMarkdown Blog for Django1.11,Python 3.6,based on Markdown,网址,希望大家能给个star,谢谢! 什么是PiperMarkdown 这是一个快速、简洁而且高效的博客,它基于Django1.11,并且使用了高效的mistune Mark阅读全文
posted @ 2017-07-06 14:04 banananana 阅读(42) 评论(0) 编辑
摘要: 记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理、负载均衡、正向代理、http服务器。这次部署用到的就是反向代理。 反向代理就是指在目标服务器和本地客户端之间建立一个中介,每次在本地客户端想要访问目标服务器的时候,nginx则会通过监阅读全文
posted @ 2017-07-05 13:58 banananana 阅读(25) 评论(0) 编辑
摘要: LCA算法 朴素算法 也就是我们所说的暴力算法,大致的思路是从树根开始,往下迭代,如果当前结点比两个结点都小,那么说明要从树的右子树中找;相反则从左子树中查找;直到找到一个结点在当前结点的左边,一个在右边,说明当前结点为最近公共祖先,如果一个结点是另外一个结点的祖先,那么返回前面结点的父亲结点即可。阅读全文
posted @ 2017-07-03 15:14 banananana 阅读(28) 评论(0) 编辑
摘要: 单例模式 单例模式需要注意的地方在于 如何保证创建的实例是唯一的如何保证多线程情况下的访问清晰明了 目前有这么几种方法: module 其实,Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。阅读全文
posted @ 2017-07-02 18:31 banananana 阅读(26) 评论(0) 编辑
摘要: 模型和数据库 模型 首先我们在创建一个model的时候,这个类都是继承自 django.db.models.Model, 各种Model Field类型 DateField,使用Python的datetime.date实例表示的日期。 EmailField,基于CharField,使用EmailVa阅读全文
posted @ 2017-06-24 17:47 banananana 阅读(145) 评论(0) 编辑
摘要: 第八章总结 8.5. heapq — 堆队列算法 有8个算法 最小堆封装 # 最小堆封装 from heapq import * import pprint class MinHeap: def __init__(self, iterable): self._iteralbe = [] self._阅读全文
posted @ 2017-06-21 22:21 banananana 阅读(29) 评论(0) 编辑