上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: Redis数据结构底层总结 本篇文章是基于作者黄建宏写的书Redis设计与实现而做的笔记 数据结构与对象 Redis中数据结构的底层实现包括以下对象: String Redis中并没有直接使用C语言中的字符串,而是在其基础之上实现了字符串的数据结构,叫做简单动态字符串(SDS)。 其内部的定义为: 阅读全文
posted @ 2017-08-24 00:37 banananana 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: 90. 子集 II 题意 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 解题思路 因为加进了重复元素,那么就有可能出现重复的子集,需要在加入到结果之前进行判断是否存在(首先要进行排序,保证每个子集都是有序的),使用的思路和1 阅读全文
posted @ 2017-08-20 14:25 banananana 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 78. 子集 题意 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 解题思路 回溯:每一次递归都把当前的路径数组加入到最终的结果中,同时维护一个index,将index的值加入到当前路径数组中,将index+1往后递归; 迭代实现 阅读全文
posted @ 2017-08-20 13:49 banananana 阅读(116) 评论(0) 推荐(0) 编辑
摘要: Celery 使用(一) 架构 如下图: 整体的流程,任务发布者或者是任务调度,将任务发送到消息代理中,接着消息代理将任务发送给消费者来执行,其执行完后将结果保存到backend中。 使用 先创建Celery实例和相关的任务,这里配置Celery可以通过创建一个配置文件,然后通过app.config 阅读全文
posted @ 2017-08-18 00:13 banananana 阅读(495) 评论(3) 推荐(1) 编辑
摘要: RabbitMQ中的使用 这篇文章将会介绍关于RabbbitMQ的使用,并且使用的是kombo(客户端的Python实现)来实现; 安装 如果使用的是mac安装的话,可以先安装到指定的位置,接着配置命令访问路径: vi .bash_profile,输入下面两行 RABBIT_HOME=/usr/lo 阅读全文
posted @ 2017-08-17 01:35 banananana 阅读(1182) 评论(0) 推荐(0) 编辑
摘要: web框架总结 前提 一个web框架需要包含的组件或者功能有: wsgi 首先要了解WSGI的相关知识,如下: web server:指的是软件程序,它从客户端接受请求,然后返回一个Response,需要注意的是它不创建Response,web app才是创建Response的主体。web app: 阅读全文
posted @ 2017-08-15 23:34 banananana 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 装饰器总结 前提 使用装饰器的前提在于Python提供的特性: 可以通过一个例子来了解: def get_animal(name='dog'): def dog(): return 'this is a dog' def cat(): return 'this is a cat' # 返回函数对象 阅读全文
posted @ 2017-08-15 03:29 banananana 阅读(564) 评论(0) 推荐(0) 编辑
摘要: Python 协程总结 理解 协程,又称为微线程,看上去像是子程序,但是它和子程序又不太一样,它在执行的过程中,可以在中断当前的子程序后去执行别的子程序,再返回来执行之前的子程序,但是它的相关信息还是之前的。 优点: 如果要充分利用CPU多核,可以通过使用多进程+协程的方式 使用 打开asyncio 阅读全文
posted @ 2017-08-13 09:21 banananana 阅读(3633) 评论(1) 推荐(0) 编辑
摘要: Python 内存管理机制和垃圾回收机制 内存管理 Python中的内存管理机制的层次结构提供了4层,其中最底层则是C运行的malloc和free接口,往上的三层才是由Python实现并且维护的。 第一层则是在第0层的基础之上对其提供的接口进行了统一的封装,这是因为虽然不同的操作系统都提供标准定义的 阅读全文
posted @ 2017-08-12 13:03 banananana 阅读(8150) 评论(1) 推荐(1) 编辑
摘要: 求二叉树中任意两个结点的距离 实现步骤: 1 class Node(object): def __init__(self, value=0): self.value = value self.left = self.right = None def get_path_length(root, n, 阅读全文
posted @ 2017-08-12 00:20 banananana 阅读(2815) 评论(1) 推荐(0) 编辑
摘要: 排序算法 下面算法均是使用Python实现: 插入排序 原理:在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。通常使用在长度较小的数组的情况以及作为其它复杂排序算法的一部分,比如mergesort或qui 阅读全文
posted @ 2017-08-10 07:00 banananana 阅读(631) 评论(2) 推荐(1) 编辑
摘要: InnoDB索引原理 前面总结过B树和B+树原理 MySQL支持多种索引,包括B+树索引(最为常用)、全文索引、哈希索引等等。 数据库中的B+树索引可以分为聚集索引和辅助索引,但是不管是聚集还是辅助的索引,其内部都是B+树,是高度平衡的,叶子结点存放着所有的数据。聚集索引和辅助索引最大的不同在于,叶 阅读全文
posted @ 2017-08-09 13:10 banananana 阅读(6139) 评论(3) 推荐(2) 编辑
摘要: 基本操作 通用操作 1. export 显示所有的环境变量,也可以获取到某个变量的详细信息; export # 显示所有 echo $SHELL # 只显示SHELL 2. whereis 使用系统自动构建的数据库来搜索可执行文件; whereis python # 如果搜不到就不输出 3. whi 阅读全文
posted @ 2017-08-07 16:04 banananana 阅读(898) 评论(0) 推荐(0) 编辑
摘要: Django是如何工作的? 概念 以线上版本中Django和Nginx、uwsgi搭配,这里首先要了解uWSGI、uwsgi、WSGI分别代表着什么,其中uWSGI实现了uwsgi、WSGI、HTTP协议的Web服务器,WSGI是通信协议,而uwsgi则是线路协议。 流程 当用户启动Nginx以后, 阅读全文
posted @ 2017-08-07 09:19 banananana 阅读(836) 评论(8) 推荐(0) 编辑
摘要: RabbitMQ知识总结 AMQP协议 AMQP协议是一个提供统一消息服务的应用层标准协议,并不会受到客户端/中间件不同产品、不同开发语言等条件的影响。RabbitMQ则是基于该协议实现的。 举个例子来说,如下图,生产者将消息发送到交换机上,交换机接收到信息以后按照相应的路由键路由到队列中,这里的交 阅读全文
posted @ 2017-07-27 11:28 banananana 阅读(2935) 评论(4) 推荐(4) 编辑
摘要: 最短路径算法 最短路径算法通常用在寻找图中任意两个结点之间的最短路径或者是求全局最短路径,像是包括Dijkstra、A*、Bellman-Ford、SPFA(Bellman-Ford的改进版本)、Floyd-Warshall、Johnson、BFS等等,这里要集中介绍Dijkstra和Floyd,前 阅读全文
posted @ 2017-07-26 08:11 banananana 阅读(3452) 评论(3) 推荐(1) 编辑
摘要: 最小生成树算法 一个连通图可能有多棵生成树,而最小生成树是一副连通加权无向图中一颗权值最小的生成树,它可以根据Prim算法和Kruskal算法得出,这两个算法分别从点和边的角度来解决。 Prim算法 理解 Prim算法从单一顶点开始,其按照以下步骤逐步扩大树中所包含顶点的数目,直到遍及连通图的所有顶 阅读全文
posted @ 2017-07-20 14:35 banananana 阅读(1124) 评论(0) 推荐(1) 编辑
摘要: Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用。 collections ChainMap 这是一个为多个映射创建单一视图的类字典类型,也就是说,它同样具有字典类型的方法,它比基础数据结构中的字典 阅读全文
posted @ 2017-07-19 11:38 banananana 阅读(6129) 评论(3) 推荐(1) 编辑
摘要: Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况;还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们常说的NoSQL,其并不需要一开始去创建好表结构,可以存储自定义的数据;还有Redis是分布式的, 阅读全文
posted @ 2017-07-16 17:03 banananana 阅读(4777) 评论(0) 推荐(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 阅读(720) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页