一.关于MongoDB: MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 二.MongoDB的优势: MongoDB 的架构较少.它是一个文档数据库,它的一个集合持有不同…
一.关于NoSQL: NoSQL(NoSQL = Not Only SQL ),"不仅仅是SQL". 相比MySQL等关系型数据库,NoSQL为非关系型的数据存储 Nosql中比较火的三个数据库有:Redis.Memchache.MongoDb. 为什么使用NoSQL: 为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题. 易扩展性:NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性.数据之间无关系,这样就非常容易扩展.无形之间也在架构的层面上带…
一.关于AMQP: AMQP,即Advanced Message Queuing Protocol,高级消息队列协议. AMQP使符合要求的客户端应用程序能够与符合要求的消息传递中间件代理进行通信. AMQP是一种新的消息传递中间件开放标准.它解决了如何跨LANS和WANS连接应用程序的问题.在AMQP之前,没有相互连接应用程序的标准,这是大型软件体系结构中比较昂贵的部分之一.AMQP是一个线级协议,外加一个用于路由和消息排队的模型.它包括非常高性能的发布-订阅(通过单个代理的速度可达每秒150…
一.缓存的由来: 提升性能 绝大多数情况下,select 是出现性能问题最大的地方.一方面,select 会有很多像 join.group.order.like 等这样丰富的语义,而这些语义是非常耗性能的:另一方面,大多 数应用都是读多写少,所以加剧了慢查询的问题. 分布式系统中远程调用也会耗很多性能,因为有网络开销,会导致整体的响应时间下降.为了挽救这样的性能开销,在业务允许的情况(不需要太实时的数据)下,使用缓存是非常必要的事情. 缓解数据库压力 当用户请求增多时,数据库的压力将大大增加,通…
一.关于Celery: 什么是任务队列: 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. 什么的Celery: Celery 通过消息机制进行通信,通常使用中间人(Broker)作为客户端和职程(Worker)调节.启动一个任务,客户端向消息队列发送一条消息,然后中间人(Broker)将消息传递给一个职程(Worker),最后由职程(Worker)进行执行中间人(Broker)分配的任务.…
greenev是一个基于greenlet协程,事件驱动,非阻塞socket模型的Python网络服务框架,它使得可以编写同步的代码,却得到异步执行的优点. 本项目受到gevent, openresty, alilua, skynet, clowwindy/ssloop的启发,在此表示感谢. reactor模式采用基于epoll, kqueue, poll, select的IO复用机制 基于底层的reactor完成上层greenlet协程的调度 在CentOS6.5, Ubuntu12.04, F…
浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该函数.在开发项目中,通常使用装饰器来管理权限,登录等等,配上Python的 @ 语法糖,轻松实现代码的重用性和低耦合性. 2.而Django中的中间件是利用面向切面的编程思想,对Django服务器访问过程中间进行干预. 是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Dj…
网络服务几乎是每一款成功APP的必备条件,打开你手机你会发现里面不用联网的应用数量十只手指可以数出来,就算是一些以独特技术切入市场的APP如美颜相机,都至少加入了分享功能.下面我先做下简单的回顾兼扫盲. 苹果定义了NSConnection 这个类来专门处理网络请求,并且这个类有两种用法来满足开发者需求. 用法一,同步请求 //NSURLConnection.h @interface NSURLConnection (NSURLConnectionSynchronousLoading) + (NS…
本人学生,零编程基础,在学习python的过程中越学越迷茫,感觉像无头苍蝇一样,来知乎取经,下面进入正题吧:        我是先看了中谷的python教学视频,然后跟着慕课网上的python教程把题目做了一遍,然后就开始看django,看了“django web开发指南”,又看“django官方文档”,在看django这两本书的时候简直是一头雾水,我有种感觉是python基础没学好的原因所以理解不了django,实在不知道在说什么,就照着书上的例子练,同时我也在网上找了好多blog应用的实例,…
python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说到网络通信,那就不得不说TCP/IP协议簇的OSI七层模型了,这个东西当初在学校都学烂了...(PS:毕竟本人是网络工程专业出身...) 简单介绍下七层模型从底层到上层的顺序:物理层(定义物理设备的各项标准),数据链路层(mac地址等其他东西的封装),网络层(IP包头的的封装),传输层(TCP/UD…