【脚本】如何确保应用程序的唯一性
相信大家在开发脚本或者写程序的时候 ,大多会遇到如何判断已经有程序在运行的情况。比如设计备份binlog ,由于某个实例产生的binlog 数量大于备份的速度,在下一个时间点,会移动一个新的进程对binlog进行备份。那我们要怎么解决呢,本文分别从 shell和python的角度提出我的解决方法
【Shell】sort 笔记
sort 的功能是将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
python 中 *args 和 **kwargs 的使用
一 简介*args 和 **kwargs 主要用于函数定义。 当我们需要定义的函数的传入参数个数不确定时,可以使用*args 和 **kwargs 代替不确定的参数个数。其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 我们可以写成*var和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。二 使用2.1 *args...
【Python】模块 fileinput
fileinput 是python 提供的一个可以快速遍历,修改一个或者多个文件的模块。我们可以使用该模块进行文本替换 并做文件备份。
python json
本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象。使用 JSON 函数需要导入 json 库:import json。json.dumps 用于将 Python 对象编码成 JSON 字符串。实例以上代码执行结果为:[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]python 原始类型向 json 类型的转化对照表:jso...
CSV 格式
CSV 即 Comma Separate Values ,是一种纯文本格式,用来存储数据。这种文件格式经常用来作为不同程序之间的数据交互的格式。最终文件可以用电子表格程序(如 Microsoft Excel )打开,也可以用作其他程序的导入格式...
【网络】ip地址漂移技术
通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。...
flask 数据库
flask 数据库的设置
SQLALchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLALchemy操作的flask扩展。安装:Flask的数据库设置:常用的SQLAlchemy字段类型常用的SQLAlchemy列选项常用的SQLAlchemy关系选项...
orm 详解
class UserType(models.Model): caption = models.CharField(max_length=32)&n...
Python 中set函数
set集合函数主要用来去除重复:比如一个列表有多个重复值,可以用set搞掉>>> l = [1,2,3,4,5,4,3,21]>>>>>> l[1, 2, 3, 4, 5, 4, 3, 21]>>>>>>>>> set(l)set([1, 2, 3, 4, 5, 21])>>>set 可以做交集,并集,差集set的增删改增:>>> a = set([1,2,3,4])>>...
http 缓存技术原理
HTTP缓存实现的原理浏览器是如何知道使用缓存的,其实这都是通过http中,浏览器将最后修改时间发送请求给web服务器,web服务器收到请求后跟服务器上的文档最后修改的时间对比,如果web服务器上最新文档修改时间小于或者等于浏览器发送过来的,则发送304给浏览器,...
flask 路由
从Hello World中,我们了解到URL的路由可以直接写在其要执行的函数上。有人会质疑,这样不是把Model和Controller绑在一起了吗?的确,如果你想灵活的配置Model和Controller,这样是不方便,但是对于轻量级系统来说,灵活配置意义不大,反而写在一块更利于维护。Flask路由规则都是基于Werkzeug的路由模块的,它还提供了很...
【系统设计】如何使用缓存
本文从 缓存什么,如何缓存,如何保证数据的一致性 方面介绍缓存的一般性使用原则。
【Python】浅谈 multiprocessing
使用python进行并发处理多台机器/多个实例的时候,我们可以使用threading ,但是由于著名的GIL存在,实际上threading 并未提供真正有效的并发处理,要充分利用到多核CPU,我们需要使用多进程。Python提供了非常好用的多进程包--multiprocessing。multiprocessing 可以利用multiprocessing.Process对象来创建一个进程,该Process对象与Threading对象的用法基本相同,具有相同的方法(官方原话:"The multiprocessing package mostly replicates the API of the threading module.") 比如:start(),run(),join()的方法。multiprocessing包中也有Lock/Event/Semaphore/Condition/Pipe/Queue类用于进程之间的通信。话不多说 show me the code!