自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

麦干的博客

学习笔记

  • 博客(20)
  • 收藏
  • 关注

转载 数字证书原理,公钥私钥加密原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理

2018-01-31 11:37:42 414

转载 探究多个装饰器执行顺序

装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思。疑问大部分涉及多个装饰器装饰的函数调用顺序时都会说明它们是自上而下的,比如下面这个例子:def decorator_a(func): print 'Get in decorator_a' def inner_a(*args, **kwarg

2017-12-16 13:08:48 337

转载 让你真正明白什么是hive

导读:对于一个事物的认识,存在几种情况1.没有接触,不知道这个事物是什么,所以不会产生任何问题。2.接触了,但是不知道他是什么,反正我每天都在用。3.有一定的了解,不够透彻。那么hive,1.我们对它了解多少?2.它到底是什么?3.hive和hadoop是什么关系?扩展:hbase和hive是什么关系?Hive

2017-11-15 23:09:58 1160

转载 微博feed系统的push,pull模式

我们来探讨一下微博feed系统的push,pull模式。在sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed架构,也就是推拉模式(timyang上次也分享了新浪微薄的模式)。下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的

2017-10-20 15:35:31 5115 1

转载 微博架构

OK,微博可以简单理解成一个feed系统或者邮件系统,你每发的一条消息就是一个群邮件,收件人就是你的粉丝。下面会提到的几个概念:扩散(我们内部叫扩散),分为三类,写扩散(push),读扩散(pull),还有混合扩散模式(push+pull)inbox:收件箱,你收到的消息(就是关注的人发的消息)outbox:发件箱,你发出的消息写扩散:假设你的粉丝是1k,你每次发表

2017-10-20 15:33:45 1569

转载 谈谈python的GIL、多线程、多进程

最近在看Python的多线程,经常我们会听到老手说:“python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢?要知其然,更要知其所以然。所以有了下面的深入研究:首先强调背景:1、GIL是什么?GIL的全称是Global Interpreter Lock(全局解释器锁),来源是python设计之初的考虑,为了数据安全所做的决定。2、每个CPU在同一时间只能执行一个

2017-10-14 23:28:45 384

转载 使用Apache的ab工具进行压力测试

使用Apache的ab工具进行压力测试Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用,ab可以直接在Web服务器本地发起测试请求,这至关重要,因为有些时候我们需要测试的仅仅是服务器的处理性能,并不想掺杂着网络传输时间的影响。ab进行一切测试的本质都是基于HTTP的,所以可以说ab对于

2017-10-13 15:56:58 183

转载 Linux 各目录的作用

Linux 各目录的作用/binbin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。/boot这里存放的是启动Linux时使用的一些核心文件。/devdev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设

2017-09-25 17:16:01 250

转载 Supervisor后台进程管理工具

Supervisor后台进程管理工具一、安装及配置1、Python liunx自带有了不需要安装(没有的话需要安装)2、easy_install是setuptools包里带的一个命令      wget--no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

2017-09-25 16:50:15 363

转载 阻塞非阻塞与同步异步区别 发表于 2015-04-18 | 分类于 网络编程 | 在网络编程中,经常会提到同步/异步,阻塞/非阻塞的概念,记得一开始的时候我总是分不清它们之间有什么区别

阻塞非阻塞与同步异步区别在网络编程中,经常会提到同步/异步,阻塞/非阻塞的概念,记得一开始的时候我总是分不清它们之间有什么区别,所以经常混淆。其实它们之间是有着一层包含与被包含的关系,其中同步包含了阻塞与非阻塞,而异步则是另一种情况。可以划分为三类:同步阻塞同步非阻塞异步同步阻塞Linux上的IO默认情况下均为阻塞IO(aio系列除外),所有的套接字也默认为

2017-09-22 10:16:41 2078

转载 非阻塞TCP套接字的要点 发表于 2015-04-22 | 分类于 网络编程 | 套接字的默认状态是阻塞的。如果一个套接字不能立即完成相应的调用,那么该线程就会被投入睡眠,等待相应的操

非阻塞TCP套接字的要点套接字的默认状态是阻塞的。如果一个套接字不能立即完成相应的调用,那么该线程就会被投入睡眠,等待相应的操作完成。阻塞一个套接字的操作可能是输入操作、输出操作、接受外来连接、发起外出连接这四种操作中的一种。如果把套接字改为非阻塞的话,这些操作就会变的不一样了。输入操作,包括read、readv、recv、recvfrom和recvmsg这五个函数(aio系列

2017-09-22 10:14:40 462

转载 TCP的三次握手(建立连接)和四次挥手(关闭连接)

TCP的三次握手(建立连接)和四次挥手(关闭连接) 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口2. TCP的流控过程(滑动窗口)TCP(Trans

2017-09-22 10:12:38 372

原创 Mongodb学习笔记

Mongodb命令use 数据库名:切换到该数据库,没有的话创建该库show dbs:显示所有数据库db:显示当前数据库show collections:显示当前数据库下所有集合db.createCollection(”):在当前数据库下创建集合db.集合名.insert():往集合插入数据db.集合名.drop():删除集合db.dropDatabase():删除当前数据库db.

2017-04-25 22:27:41 319

原创 redis学习笔记

redis 学习笔记常用命令set key value:设置键值对mset key value key value:设置多个键值对get key:获取键值mget key key:获取多个键值dump key:序列化给定keyexists key:检查key是否存在type key:返回key存储的值类型keys *:查询所有的键expire key 为键设置过期时间 seco

2017-04-21 21:42:36 210

原创 MySQL学习笔记

Mysql 学习笔记Mysql 学习笔记表操作查询操作索引外键Mysql 权限操作其他操作表操作显示当前数据库下所有表:show tables显示表的描述信息:desc 表名显示创建表的SQL语句:show create table 表名修改表名:alter table 表名 rename to 新表名创建外键:alter table 表名 add foreign key (

2017-04-18 23:16:23 316

原创 实现Python中range函数

def my_xrange(start, stop=None, step=None):    result=[]    if stop:        if start            step=step if step else 1            while True:                result.append(start)

2017-02-19 10:42:41 1312

转载 阻塞非阻塞与同步异步的区别

阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,

2016-12-13 22:06:36 210

转载 在 Flask 中使用 Celery

在 Flask 中使用 Celery后台运行任务的话题是有些复杂,因为围绕这个话题会让人产生困惑。为了简单起见,在以前我所有的例子中,我都是在线程中执行后台任务,但是我一直注意到更具有扩展性以及具备生产解决方案的任务队列像 Celery 应该可以替代线程中执行后台任务。不断有读者问我关于 Celery 问题,以及怎样在 Flask 应用中使用它,因此今天我将会向你们展示两个例子,我希望

2016-12-11 11:07:11 5182

转载 分布式缓存

在前面的一些文章中,从实战的角度,讲解了有关memcached的应用、容灾、监控等等。但是缺乏对理论的讲解和原理性的剖析。本文将从理论的角度去介绍,让大家从宏观上对“分布式缓存、nosql”等技术有所了解,以便进一步学习和使用。在构建大规模的web应用时,缓存技术可以说是必备的,学习的必要性不言而喻。分布式缓存概述1.1 分布式缓存的特性分布式缓存具有如下特性:

2016-12-11 10:29:12 395

转载 缓存使用中Redis,Memcached的共性和差异分析

在各大互联网项目的业务场景中,Redis和Memcached都已经是必不可少的高并发场景缓存应用解决方案,本文将从为什么要用redis,memcached和什么时候使用Redis,什么时候使用Memcached两个角度来分析。     一.为什么要用Redis,Memcached。         随着互联网产品技术的不断纵深发展,数据存储方案主要分为了两个方向,持久存储和临时存储

2016-12-11 09:46:22 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除