置顶
公交车
21 9 2020
公交车......
置顶
分布式调度——zookeeper
13 2 2019
大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)
大部分应用需要开发私有的协调程序,缺乏一个通用的机制
协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器
zookeeper是Google的Chubby一个开源的实现,是开源的分布式协调服务
它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等
zookeeper是一个高性能的分布式数据一致性解决方案,它将那些复杂的,容易出错的分布式一致性服务封装起来,构......
置顶
多源复制架构
2 8 2019
(1) 清理环境
(2) 创建需要的目录 
(3) 准备配置文件
(4) 初始化数据 
(5) 启动数据库
(6) 构建主从......
置顶
Percona-toolkit工具详解
1 8 2019
pt-osc工作流程:
1、检查更改表是否有主键或唯一索引,是否有触发器
2、检查修改表的表结构,创建一个临时表,在新表上执行ALTER TABLE语句
3、在源表上创建三个触发器分别对于INSERT UPDATE DELETE操作
4、从源表拷贝数据到临时表,在拷贝过程中,对源表的更新操作会写入到新建表中
5、将临时表和源表rename(需要元数据修改锁,需要短时间锁表)
6、删除源表和触发器,完成表结构的修改。......
Chrome webdriver option
28 1 2022
Chrome webdriver option......
【原创】 RPA公共方法汇总
24 11 2021
公共方法汇总......
xlwings 为excel加边框
24 11 2021
xlwings 为excel加边框......
【原创】 基于pyautogui的图片识别定位点击操作
24 11 2021
基于pyautogui的图片识别定位点击操作......
xlwt设置excel字体、对齐方式、边框、颜色、背景色
24 11 2021
xlwt设置excel字体、对齐方式、边框、颜色、背景色......
【原创】 Python 切换输入法
24 11 2021
Python 切换输入法......
【原创】 Python 根据设置储存限制定期删除录屏等大文件
24 11 2021
Python 根据设置储存限制定期删除录屏等大文件......
【原创】 使用xlwt为excel数据修改sheet style等
24 11 2021
使用xlwt为excel数据修改sheet style等......
【原创】 DF格式数据转换2D列表使用xlw写入excel
24 11 2021
DF格式数据转换2D列表使用xlw写入excel......
【原创】 Python 实现 RPA流程中的屏幕录制
24 11 2021
Python 实现 RPA流程中的屏幕录制......
I/O 多路复用与协程
13 2 2019
并发:一个时间段内,有多个程序在同一个CPU上运行(但任意时刻只有一个在CPU上运行);
并行:任意时间点上,有多个程序同时运行在多个CPU上;
同步:代码调用I/O操作时,必须等待I/O操作完成才返回;
异步:代码调用I/O操作时,不必等I/O完成就返回;
阻塞:调用函数时当前线程被挂起;
非阻塞:调用函数时当前线程不会被挂起(立即返回)。......
Django-模板语言-自定义filter和simple_tag
4 8 2018
@register.simple_tag  #和自定义filter类似,只不过接收更灵活的参数,没有个数限制。
注意:(filter可以放在if for语句中,simple_tags不能)......
DRF-Serializer
13 2 2019
DRF-Serializer......
DRF-视图
13 2 2019
drf-视图......
RESTful 架构详解
13 2 2019
RESTful 架构详解......
DRF-简单介绍
13 2 2019
drf-简单介绍......
restFul接口设计规范
14 2 2019
1. 域名 应该尽量将API部署在专用域名之下。
2. 版本(Versioning)应该将API的版本号放入URL。
3. 路径(Endpoint)路径又称"终点"(endpoint),表示API的具体网址,每个网址代表一种资源(resource)
4. HTTP动词 对于资源的具体操作类型,由HTTP动词表示。
5. 过滤信息(Filtering)如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。......
HTTP请求中的Form Data与Request Payload的区别
13 2 2019
当请求头的Content-Type为application/json时浏览器认为该请求为复杂请求,这时浏览器会先进行一次预请求,执行一次OPTIONS 请求,向服务器求证该请求是否合法,如果服务器没有给出正确回应浏览器会报跨域请求导致请求失败......
JQuery 中使用 Ajax 发送 GET、POST 请求
13 2 2019
JQuery 中使用 Ajax 发送 GET、POST 请求......
Ajax请求传递data数据三种格式
13 2 2019
json对象格式:
{“username”:”chen”,”nickname”:”alien”}
标准参数模式:
“username=Liudehua & age=50”
json字符串 只用于post请求:
“{“username”:”chen”,”nickname”:”alien”}”————>JSON对象格式的字符串......
post请求中的参数形式和form-data提交数据时取不到的问题
13 2 2019
multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息
x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的
raw对应的是入参是任意格式的可以上传任意格式的【文本】,可以上传text、json、xml、html等......
高级反爬
4 8 2018
高级反爬......
数据解析
4 8 2018
数据解析......
基于Pandas的数据清洗
16 2 2019
基于Pandas的数据清洗......
DataFrame实例
15 2 2019
-股票分析......
Pandas操作
14 2 2019
umpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据!......
Numpy模块
13 2 2019
NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。

numpy的创建:
使用np.array()创建
使用plt创建
使用np的routines函数创建
使用array()创建一个一维数组......
redis数据类型
13 2 2019
1. string类型: Redis 中最为基础的数据存储类型,也就是byte类型
2. hash类型: hash用于存储对象,对象的结构为属性、值,值的类型为string。
3. list类型: 列表的元素类型为string。
4. set类型: 无序集合,元素为string类型,元素唯一不重复,没有修改操作。
5. zset类型: 有序集合,元素为string类型,元素唯一不重复,没有修改操作。......
详解Redis中两种持久化机制RDB和AOF
31 1 2020
详解Redis中两种持久化机制RDB和AOF......
搞懂HTTP和HTTPS协议
13 2 2019
HTTP/0.9	1991年	不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求	没有作为正式的标准
HTTP/1.0	1996年	传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令	正式作为标准
HTTP/1.1	1997年	持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码	2015年前使用最广泛
HTTP/2	2015年	多路复用、服务器推送、头信息压缩、二进制协议等	逐渐覆盖市场......
IO 多路复用是什么意思?
4 8 2018
传统方法,使用多进程并发模型,每进来一个新的i/o流都会单独去分配一个新的进程管理(开辟出无限个进程,增加系统负担,导致崩溃死机)
后来使用i/o多路复用(利用单个线程,通过记录和跟踪每个i/o流状态,来同时管理多个i/o连接)
select , poll ,epoll  都是i/o多路复用的具体实现.......
TCP协议详解
5 6 2018
序号 seq(sequence):
由于tcp的可靠连接,每一个“TCP报文段中的第一个字节”都会被赋予一个序列号。序列号是个32位数,到达2^32-1后会再回到0.

确认号 ack (acknowledge):
确认号包含的值为:“确认号的发送方”希望接收的下一个序列号。(即最后接收成功的序列号+1)......
2. Vue指令系统的常用指令
4 8 2018
指令 (Directives) 是带有“v-”前缀的特殊属性。每一个指令在vue中都有固定的作用。
在vue中,提供了很多指令,常用的有:v-html、v-if、v-model、v-for等等。......
Linux软件安装中RPM、YUM、压缩包、源代码的区别
4 8 2018
通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
软件包管理器:如RPM。
软件包管理器的前端工具:如YUM。
源代码编译。......
彻底理解同步 异步 阻塞 非阻塞
3 11 2019
彻底理解同步 异步 阻塞 非阻塞......
Linux软件安装中RPM、YUM、压缩包、源代码的区别
4 8 2018
通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
软件包管理器:如RPM。
软件包管理器的前端工具:如YUM。
源代码编译。......
mysql 幻读的理解、实例及解决办法
3 8 2019
幻读,并不是说两次读取获取的结果集不同,幻读侧重的方面是某一次的 select 操作得到的结果所表征的数据状态无法支撑后续的业务操作。更为具体一些:select 某记录是否存在,不存在,准备插入此记录,但执行 insert 时发现此记录已存在,无法插入,此时就发生了幻读。......
MySQL事务
3 8 2019
start transaction;
……  #一条或多条sql语句
commit;......
Django的中间件
4 8 2018
process_request(self,request)
process_view(self, request, view_func, view_args, view_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)......
Docker 命令
13 2 2019
启动docker   sudo service docker start
停止docker   sudo service docker stop
重启docker   sudo service docker restart......
Docker
13 2 2019
容器是什么
-对软件和其依赖的标准化打包
-应用之间相互隔离
-共享同一个OS Kernel
-可以运行在很多主流操作系统上......
1.vue.js的快速入门使用
4 8 2018
vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的。
另外几个常见的工具库:react.js /angular.js
官方网站:
	中文:https://cn.vuejs.org/
	英文:https://vuejs.org/
官方文档:https://cn.vuejs.org/v2/guide/......
安装配置redis
13 2 2019
打开配置文件,redis安装的目录下的 redis.windows-service.conf 文件
设置绑定IP,如果想要让局域网内其他主机访问自己的redis,需要设置 bind 0.0.0.0
设置redis密码,如果想需要提供密码再登录redis,需要设置 requirepass
启动 或 关闭,在右边找到并选中redis服务,然后点击 重启动 或 关闭
在windows中打开终端,输入 redis-cli 就可以使用这个客户端了。......
MySQL存储过程/存储过程与自定义函数的区别
4 8 2018
存储过程实现的过程要复杂一些,而函数的针对性较强;
存储过程可以有多个返回值,而自定义函数只有一个返回值;
存储过程一般独立的来执行,而函数往往是作为其他SQL语句的一部分来使用;......
Unicode 和 UTF-8、UTF-16、UTF-32之间的
20 7 2018
UTF-8 就是使用变长字节表示,顾名思义,就是使用的字节数可变,这个变化是根据 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多。使用的字节个数从 1 到 4 个不等。 UTF-8 的编码规则是:  ① 对于单字节的符号,字节的第一位设为 0,后面的7位为这个符号的 Unicode 码,因此对于英文字母,UTF-8 编码和 ASCII 码是相同的。  ② 对于n字节的符号 (n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为 0,后面字节的前两位一律设为 10,剩......
事务的隔离级别,mysql中开启事务、django中开启事务
5 6 2018
RU:READ-UNCOMMITTED  读未提交  会出现问题: 脏读、不可重复读、幻读
RC:READ-COMMITTED  读已提交  会出现问题:不可重复读、幻读
RR:REPETABLE-READ  可重复读  会出现问题:幻读,但是可以通过GAP和Next-lock防止幻读。
SE:SERIALIZABLE  可串行化 效率慢
默认:可重复读......
CSS控制图片和文字在同一行显示且对齐的3种方法
4 8 2019
添加上“vertical-align:middle”属性 
<img src="logo.jpg" alt="" style="vertical-align:middle"><a href="">找回密码</a>......
【原创】 哪些情况下,y!=x-(x-y)会成立?
4 8 2018
# 非空且不为子父关系的两个集合,符合条件
x = {"a","b","c"}
y = {"b","d"}
{"a","b","c"} - {"a","c"} = {"b"}
{"b","d"} != {"b"}......
为何4个字节int取值范围是-2^31 到2^31 - 1
22 7 2019
当负0时,对应的二进制数值是1000 0000,当正0时,对应的二进制数值是0000 0000,不知道看到这儿,你有没看出端倪,无论看没看粗来,我都得说粗来,那就是,本来数学上,正0和负0表示的是同一个数,然鹅在这种情况下,正0和负0表示了两个数值,也就是计算机内部用了两个二进制数来表示和存储这两个0,现在是不是觉得恍然大悟呢?......
【原创】 理解TCP和UDP
3 8 2019
TCP与UDP的区别:
基于连接与无连接
对系统资源的要求(TCP较多,UDP少)
UDP程序结构较为简单
流模式与数据报模式
TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证......
索引及执行计划
3 8 2019
(1). 索引是基于表中,列(索引键)的值生成的B树结构
(2). 首先提取此列所有的值,进行自动排序
(3). 将排好序的值,均匀的分布到索引树的叶子节点中(16K)
(4). 然后生成此索引键值所对应得后端数据页的指针
(5). 生成枝节点和根节点,根据数据量级和索引键长度,生成合适的索引树高度......
MySQL前缀索引
3 8 2020
从index2的索引树上,找到满足索引值是“zhangs”的记录,找到第一个是ID1;
到主键索引树上查到ID1这一行,判断email的值满不满足where后的条件,不满足这一行丢弃。
继续回到index2这个索引树上查下一条记录,发现如果还是"zhangs",取出ID2,再回到ID2索引树上进行判断,如果值正确,将结果返回结果集中。
重复执行以上流程,直到从index2索引树上取出的数据不是“zhangs”,循环结束。......
了解信号量Semaphore和线程池的差异
4 8 2018
1. 线程池和信号量在某种程度如允许执行的线程数效果上是一样,但线程池可以获取线程执行结果得到线程执行状态
2. 使用线程池需要首先实例化,然后提交线程,返回线程对象,然后在主线程中选择获取结果或者不需要结果,也可以选择堵塞等待线程执行完或不等待线程执行完
3. 获取线程执行结果,可以参照Go语言中CSP通信模式,个人觉得这是个非常好的解决方案,这样的线程池接口提交远比CSP通信来的复杂......
【原创】 <a>标签的高度为21px的原因
3 8 2020
a标签是行内元素,不能拿来包裹块级元素。 既然a是行内元素,那么它的高度自然不会受其包裹的子元素影响,而浏览器给行内元素设置的最小高度是21px,因为a里有内容,却是个图片,所以自然a的高度就是21px了。 如果你想解决这个问题,a{dispaly:inline-block;font-size:0}......
uwsgi、wsgi和nginx的区别和关系
3 8 2020
一个普通的个人网站,访问量不大的话,当然可以由uWSGI和Django构成。但是一旦访问量过大,客户端请求连接就要进行长时间的等待。这个时候就出来了分布式服务器,我们可以多来几台web服务器,都能处理请求。但是谁来分配客户端的请求连接和web服务器呢?Nginx就是这样一个管家的存在,由它来分配。这也就是由Nginx实现反向代理,即代理服务器。......
体系结构与管理
2 8 2019
(1)接收上层传送的SQL语句
(2)语法验证模块:验证语句语法,是否满足SQL_MODE
(3)语义检查:判断SQL语句的类型
(4)权限检查:用户对库表有没有权限
(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.
(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划
代价模型:资源(CPU IO MEM)的耗损评估性能好坏
(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果
(8)提供查询缓存(默认是没开启的)......