单例模式

在应用这个模式时,单例对象的类必须保证只有一个实例存在。

服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。

  1. __new__实现
  2. 用装饰器实现单例模式

普通、静态方法、类方法

普通方法传入的第一个参数必须是self(当然也可以不用self,官方要求尽量用self),self是指实例对象本身;

静态方法无需传参;

类方法传入的第一个参数必须是class,是指类本身。

并发

Python的内存利用率

使用多线程:单核100% 双核不到50% 四核不到30%,涉及到叫GIL(全局解释器锁)的东西

但是多线程还是很有用的,比如网络爬虫、文本处理等等。这时候由于网络情况和I/O的性能的限制,

Python解释器会等待读写数据的函数调用返回,这个时候就可以利用多线程库提高并发效率了。

需要使用多进程;

Java使用多线程则可以达到100%利用率

生产者-消费者模式

通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯

队列在并发开发中最常用的。

我们借助「生产者/消费者」模式来理解:生产者把生产的「消息」放入队列,消费者从这个队列中对去对应的消息执行。

事务:select @@tx_isolation

概念:应用程序中一系列操作,所有操作必须成功完成,否则每个操作中所作的所有更改都会被撤消。

结束条件

1.事务中步骤全部成功执行,事务提交

2.如果其中一个步骤失败,发送回滚操作,前面步骤取消

四个特征

原子性:数据库逻辑单位,要么各操作都做,要么都不做

一致性:数据库只包含成功事务提交的结果

隔离性:一个事务的执行不能被其他事务干扰

持续性:一个事务一旦提交,他对数据库中的数据改变就是永久性的

四种隔离级别

SQL标准定义了4类隔离模式,用来限定事务内外的哪些改变是可见的,哪些是不可见的。

  • read uncommit读取未提交内容:所有事务都能看到其他未提交事务的执行结果。
  • read commit读取提交内容:(大多数据库系统的默认级别,非mysql),一个事务只能看见已经提交事务所作的改变。
  • repeatable read可重读:(Mysql默认),他确保同一事务的多个实例在并发读取数据时看到同样的数据行。
  • serializable可串行化:最高的隔离级别,强制事务排序,使之不能相互冲突,在每个读的数据行上加上共享锁。

Redis

nosql 开源,C语言编写的、Key-Value内存告诉数据库,

存储类型string、list、set、set、hash ,单个value的最大限制是1GB,

队列技术,串行访问,单进程单线程

数据淘汰策略:

1.从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
2.从已设置过期时间的数据集中挑选要过期的数据淘汰
3.从已设置过期时间的数据集中任意选择数据淘汰

服务器

1.买一个云服务器,得到公网ip

2.linux用SSL打开服务器,windows使用putty打开服务器

3.运行的时候创建虚拟环境

4.传输python项目文件(FileZilla)

4.安装一个screen(python)将程序在后头运行

web服务器

B/S架构,Apache:socker监听,工作队列。

客户端发送请求,服务器解析请求,读取其他信息,完成请求动作,关闭文件和网络连接

如何在云服务器运行多个python脚本

  1. 多终端运行:开sshd服务,安装xshell,多开些会话
  2. 后台运行:nohup xx.py;
  3. 守护进程方式:uwsgi/gunicorn/supervisor;
  4. docker方式:docker镜像,运行container

python事件驱动模型(IO模型)

事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。

它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。

Linux

io模式

  1. 阻塞 I/O(blocking IO)
  2. 非阻塞 I/O(nonblocking IO)
  3. I/O 多路复用( IO multiplexing)
  4. 信号驱动 I/O( signal driven IO)
  5. 异步 I/O(asynchronous IO)

通信

  • 管道:进程间通信
  • 消息队列:消息的链表存放在内核中
  • SOCKET:它可用于不同机器间的进程通信

负载均衡

主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题

DNS服务器里可以内部负载均衡和全局负载均衡

缓存存储静态内容、根域名服务器、顶级域名、权威域名

Backen-Development record 1的更多相关文章

  1. [转] Agile Software Development 敏捷软件开发

    原文作者:kkun 原文地址:http://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷是什么 ...

  2. 微软职位内部推荐-Software Development Engineering II

    微软近期Open的职位: Job Title: Software Development Engineering II Work Location: Suzhou, China Enterprise ...

  3. 微软职位内部推荐-Senior Development Engineer

    微软近期Open的职位: Job Title: Senior Software Development Engineering Work Location: Suzhou, China Enterpr ...

  4. 微软职位内部推荐-Software Development Engineer 2

    微软近期Open的职位: SDE II Organization Summary: Engineering, Customer interactions & Online (ECO) is l ...

  5. 敏捷软件开发 Agile software Development(转)

    原文链接: http://www.cnblogs.com/kkun/archive/2011/07/06/2099253.html 敏捷软件开发 Agile software Development ...

  6. 微软职位内部推荐-Software Development Engineer II

    微软近期Open的职位: Job Title:Software Development EngineerII Division: Server & Tools Business - Comme ...

  7. 微软职位内部推荐-Sr Development Lead-OSG-IPX

    微软近期Open的职位: Job Summary:Be part of Microsoft's strategy to deliver a great input experience across ...

  8. Step-by-Step Guide to Portal Development for Microsoft Dynamics CRM - 摘自网络

    The Challenge Oftentimes in the world of Dynamics CRM, the need arises for non-CRM users to gain acc ...

  9. Using QEMU for Embedded Systems Development

    http://www.opensourceforu.com/2011/06/qemu-for-embedded-systems-development-part-1/ http://www.opens ...

  10. Software development skills for data scientists

    Software development skills for data scientists Data scientists often come from diverse backgrounds ...

随机推荐

  1. Winfrom 极简版贪吃蛇源码

    该源码是我在百度知识库借助前辈的的经验,加上自己的一点小改动写的一个非常简陋的贪吃蛇小程序.如果你们有更好的改动方案,欢迎评论. 进入主题吧! 1.创建一个桌面应运程序,拖一个定时器控件.这样,程序界 ...

  2. Angular 开发环境搭建

    Angular 是一款开源 JavaScript 框架,由Google 维护,用来协助单一页面应用程序运行的.它的目标是增强基于浏览器的应用,使开发和测试变得更加容易.目前最新的 Angular 版本 ...

  3. windows2012获取明文密码

    windows 2012获取明文密码 导hash的话用常规的方法就可以. 修改注册表 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ...

  4. VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作

    VMwarevSphere Client 链接 vCenter Server中的主机,开启虚拟机提示:在主机当前连接状况下不允许执行该操作很多原因都可以导致该问题出现,例如 vCenter Serve ...

  5. c++ 常用数据类型转换

    1.int型与string型的互相转换 int型转string型 void int2str(const int &int_temp,string &string_temp) { str ...

  6. 论文笔记:Learning Region Features for Object Detection

    中心思想 继Relation Network实现可学习的nms之后,MSRA的大佬们觉得目标检测器依然不够fully learnable,这篇文章类似之前的Deformable ROI Pooling ...

  7. C++实例 分解质因数

    分解质因数: 每个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数,叫做这个合数的分解质因数.分解质因数只针对合数. 分解质因数的算式叫短除法.求一个数分解质因数,要从最小的质数除起, ...

  8. 小程序UI设计(8)-布局分解-FlexBox的align-content应用

    FlexBox的align-content到底是什么鬼,我也搞了好半天才开发出来,目前工具中WViewRow组件使用了此属性,WViewColumn中此属性不起作用.下图是justify-conten ...

  9. 完全平方数 HYSBZ - 2440 (莫比乌斯函数容斥)

    完全平方数 HYSBZ - 2440 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他 ...

  10. php的加解密openssl_encrypt与openssl_decrypt

    https://blog.csdn.net/zhemejinnameyuanxc/article/details/83383434   php的加解密