- 博客(57)
- 收藏
- 关注
原创 秃头整理:TCP/IP 详解卷一 笔记--完结撒花
先注明 本文所有内容都是基于底层是以太网或iee802.3 封装的数据链路层进行讨论的,不包括点对点网络。其中的ip协议指的也是ipv4.数据链路层以太网和IEEE 802封装以太网以太网 是 TCP/IP 主要使用的 一种使用带冲突检测的载波侦听多路接入方式的 局域网组网技术。速率是10Mb/s(可以提升),地址为48bitIEEE 802IEEE 下的802委员会 在 以太网发布之后几年,也公布了一项组网计数,不幸的是,802.2 和802.3 定义了一个与以太...
2020-12-24 23:34:27 2100
原创 flask orm 如何保持稳定连接数据库
orm 使用连接池时,需要参照如下格式engine=create_engine( "mysql+pymysql://root:xxxx@1.2.2.3:3306/db", pool_size=100, #连接池最多个数 pool_recycle=3600, # 若设置-1 则链接永久有效,但是mysql sever 会有默认链接时间8H 超时会自动断开 pool_pre_ping=True, #是否在使用连接钱先进行ping pool_timeout=30,..
2021-08-26 16:23:25 2397
原创 pymysql allowmultiqueries=true 一次性执行多条不同语句
在 mysql 驱动的众多属性中,有一个属性叫做allowmultiqueries=false #默认false这个属性的含义是是否允许一次执行多个查询。使用了该参数之后,mysql 可以一次执行多条不同的语句。 语句之间用分号分割。如下所示: from directsql.connector import MysqlPool,MysqlConnection from pymysql.constants import CLIENT client...
2021-08-24 09:55:04 2637
原创 ubuntu 20.04 意外升级内核 导致virtualbox 无法启动虚拟机
参考: https://blog.csdn.net/chunlongyuan/article/details/8565874 《virtualbox无法启动Kernel driver not installed (rc=-1908)》 https://www.linuxidc.com/Linux/2017-11/148871.htm 《Virtualbox提示“Kernel driver not installed (rc=-1908)”问题修复一例》 # 下面...
2021-08-06 15:56:14 1016
原创 分享一个python 处理mysql的简易封装模块---directsql
分享一个python 处理mysql的简易封装模块—directsqldirectsql 是一个简单的使用python操作mysql的工具,提供了一些类似sql语法的方法,最终拼接成sql。可以很好地处理一些常见场景,不依赖orm 的同时避免手写大量sql。 安装$ pip3 install directsql导入directsql 目前只提供三个外部类__all__=["SqlGenerator","MysqlConnection","MysqlPool"]导入方式f
2021-05-06 15:43:13 353 3
原创 操作系统笔记: 内存分配
地址空间 和地址生成地址空间分为物理地址空间和逻辑地址空间物理地址空间 是可以直接访问到具体主存地址的,面向硬件的 逻辑地址空间则是面向应用程序的,类似于偏移量。以C程序为例,其编译出来的程序,其中的地址都是逻辑地址。程序本身并不会固定物理地址。但是在加载到内存运行的时候,每个应用程序都是要分配对应的物理地址空间的。这个过程对应用程序本身是不可见的,这是操作系统的工作。在应用程序执行的时候,cpu里的mmu(内存管理单元)负责查找逻辑地址的映射表,找出逻辑地址和物理地...
2021-02-20 13:42:38 621
转载 zero-copy 零拷贝技术
在 讲文件读写策略前,我们先讲一下普通文件的传输机制普通文件传输机制设 用户进程A 需要发送一份文件给 主机B第一步: 用户进程发起read 调用 ,进程由用户态转为内核态,并阻塞自身第二步: 内核 查看该文件是否在缓存中第三步: (假设文件不在缓存中)内核去读取磁盘文件并驱动DMA 加载到内核的页缓存第四步: 将页面缓存的文件拷贝到用户进程空间,并唤醒进程第五步: 用户进程发起write 调用,进程又由用户态切换为内核态,并阻塞自身第六步: 内核将用户进程...
2021-02-19 15:32:26 568
原创 【ELK】 填坑
elasticsearch 填坑1. Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true这个是版本变化造成的,es7 后,需要在url后加入include_type_name=true 参数: http://xxxx/test_index/article/_mapping?include_type_name=tru...
2020-12-13 23:30:28 1448
原创 ubuntu 18.04 升级mysql5.7 至 8.0 失败
感谢原文 :http://blog.chinaunix.net/uid-29210474-id-3951842.htmlroot@VM-0-10-ubuntu:~# apt-get install mysql-serverReading package lists... DoneBuilding dependency tree Reading state information... Donemysql-server is already the newest version (.
2020-10-27 21:47:15 1410
原创 ubuntu 开机黑屏 解决方案 之一(filesystem readonly)
起因 : 由于本人有不关机的习惯,最近几次早上到公司工作,发现电脑都处于假死状态,显示屏永远处于屏保画面。只好重新启动,但是启动之后 电脑就黑屏,彻彻底底的黑屏,什么都看不到。解决方案: 1. 开机时转到grub 界面,选择系统2. 选择 Advanced Options For Ubuntu3. 选择 Recovery Mode这时会看到以下内容4. 选择 Clean 选项 。 这一步最重要的,我这里之所以开机就黑屏就是因为 文件系统出了问题,...
2020-10-17 11:59:51 17312 19
原创 streamparse 填坑
https://streamparse.readthedocs.io/en/master/quickstart.htmlstreamparse 是python中用来操控storm的一个模块。上文给出了streamparse的快速上手的文档。但是本人在使用中出现了各种意外。以下三点是本人经过无数次尝试后的成功经验注意:不要使用root账号操作streamparse 中 有依赖 lein ,lein 需要使用非root账户(使用root账户有坑,这里不做详细叙述)1. 不要使用最新...
2020-10-12 13:15:13 1557
原创 ubuntu+win 双系统 误删分区 修复grub
背景:ubuntu18.04 +win10先装的win10 后装的ubuntu。起因:固态硬盘,windows 做了三个分区,CDE。后来嫌弃DE盘没啥用,干脆合并了。之后重启电脑就出现了grub secue解决办法:1. 先使用 ls 命令 查看有多少 分区2. 逐个使用 ls <分区>/boot/grub 查看有无grub配置grub rescue> ls 结果示例# (hd0) , (hd0,m...
2020-10-10 19:39:24 776
原创 事务与MVCC以及各种锁
事务与MVCC以及各种锁什么是事务?设一条sql语句是一个操作,则事务可以理解为一组不可分割的操作集合。事务具有四个特征,简称 ACID特性事务的特性原子性 (Atomicity) 事务是一个整体,其中的操作要么全部操作成功,否则就视为操作失败。隔离性(Isolation): 多个事务并发执行的时候,各个事务之间不能互相干扰, 即事务质检是互相之间隔离的。持久性(Durability) : 持久性是指事务一旦成功提交,其对数据的所做改动是永久性的。一致
2020-10-09 17:47:41 304
原创 sparse run 失败: Unable to run ‘lein deps :tree‘!
按照 streamparse 官网的教程,并且已经安装好 java、lein、storm等 依赖 ,准备开始 进行 storm 的第一个实例:wordcount但是 执行 sparse run 的时候 lein 一直报错 。Warning: local() encountered an error (return code 1) while executing 'lein deps :tree'Traceback (most recent call ...
2020-09-24 15:46:45 317
原创 python 常用加密方法 md5/sha1/base64
#! /usr/bin/env python3# -*- coding: utf-8 -*-import hashlibimport base64def get_string_md5(str): """ 生成字符串的md5 短16位即 中间[8:24]位 """ h1 =hashlib.md5() h1.update(str.encode(encoding = 'utf-8'))# 指定字符编码,md5输入必须是二进制,这里需要编码.
2020-07-30 18:05:21 224
原创 python 爬取 jsonp 请求的响应数据
jsonp 是为了解决跨域问题而诞生出的解决方案。在现代浏览器中,除了src等特殊标签可以允许跨域,其他时候都不允许跨域访问。为了解决这个问题,jsonp诞生了。其原理主要是 向服务端传递一个一个callback 方法,以及其他请求参数。服务端接受到请求之后,收集对应参数所需要的数据,并加上之前传过来的callback 方法名 ,包装成一个内容为 js文件的响应。客户端再对这个伪js方法进行解析。示例:以http://www.neeq.com.cn/zone/newshare/lis...
2020-06-18 23:50:37 3697 3
原创 修改 python每行代码 80字符长度限制
在python开发中,80字符长度是一个十分有争议的规范。时代在向前走,多年前推出的80个长度的规范很多人包括linus在内都觉得不合理。 对于逻辑控制语句,代码更短的确可以避免代码过于冗长、复杂。但是对于非控制语句,80字符对于长字符串等操作是十分坑爹的。 为了遵守规范,很多人都会使用pylint 来进行自动格式化format代码 。一般大家使用的都是pylint 这个插件。以vscode为例 ,可以选择一个代码格式化插件。 命令行 输入 select ...
2020-06-17 23:43:13 5215
转载 redis 中的跳表与有序集合--redis 有序集合的实现
看了很多跳表的文章包括《redis设计与实现》,都没能很好地了解跳表。感谢https://www.jianshu.com/p/61f8cad04177 此文。有序集合的实现有序集合 的实现采用了两种方式:当有序集合对象同时满足以下两个条件时,对象使用 ziplist 编码:1、保存的元素数量小于128;2、保存的所有元素长度都小于64字节。否则使用跳表(skiplist)1. 压缩列表 ziplist首先需要明确,压缩列表的产生是Redis为了节约...
2020-06-02 23:17:39 374
原创 浅析 mysql数据库中的范式
第一范式(1NF)数据表的每一列都要保持它的原子特性,也就是列不能再被分割。这张表就不符合第一范式规定的原子性,不符合关系型数据库的基本要求,在关系型数据库中创建这个表的操作就不能成功。不得不将数据表设计为如下形式。第二范式(2NF)概率:每列属性必须与主键相关。第三范式(3NF)概念:所有的非主属性不依赖于其他的非主属性范式优点: 1.通常 范式结构的表更新快,开销小。 2.更少重复 3.更少使用到disti...
2020-06-01 23:50:48 148
原创 ubuntu20.04踩坑-SSL_connect: error:1425F102 .. unsupported protocol
这个问题的起因是在新装的ubuntu20.04中使用mysql连接远程库.mysql -uxxx -hxxxx -pxxx起初以为是mysql的版本问题,卸了又装,装了又卸后搜索到是openssl的问题.经过不懈努力,终于搞定此问题感谢此文章https://my.oschina.net/u/4288355/blog/4268255/print问题的原因是ubuntu20.04将openssl 连接时,可接纳的ssl协议版本提高了导致与对方建立ssl连接时,如果对方使用的.
2020-05-20 12:44:28 8462 6
原创 【高性能mysql】-字段类型的选择
1. 优化数据类型 1.0 几个简单的原则 1.更小的通常更好:尽量选择可以正确存储数据的最小数据类型。如int-->tinyint, varchar-->char(20) 2.简单就好:使用更少耗费cpu的类型。如整形比字符串操作代价更低;使用mysql内建的时间/日期类型而不是字符串存储时间;使用整数存储ip地址等等 3. 尽量避免 null 。如果查询带有null的列,对mysql来说更难优化。nu...
2020-05-18 22:49:09 432
原创 redis 字典与渐进式哈希
大家都知道 ,redis是一个基于key-value 形式的 存储系统。而字典就是一个元素类型为key-value形式的一种数据结构,那么可以这么认为:redis本身就是一个巨大的字典。在redis的源码,中redis自己实现了字典。首先是实现 key-value 键值对typeof struct dictEntry{ void *key; union{ void *val; uint64_tu64; int64_ts64; }...
2020-05-14 21:57:39 293
原创 五行代码实现python单例
python实现单例的方式有很多,这里给出一种最简单明了且优雅的方式,有比此方式还要优雅简单的方式请在下方留言,互相探讨探讨class Singleton(object): def __new__(cls,*args,**kwargs): if not hasattr(cls, '__instance'): setattr(cls, "__in...
2020-04-30 18:42:24 256
原创 斐波那契数列与矩阵乘法的联系以及其python实现
斐波那契数列 即 1、1、2、3、5、8、13、21、34、.....以此类推,在很多面试题中,面试官都会让你手写斐波那契数列的实现。对于一些有编程经验的人来说,这很容易,他们可以很快写出类似以下代码:设 n 为 大于0的正整数,求第n个斐波那契数(1为第一个,2为第二个...8为第五个)def feb(n): if n == 1 or n == 2: ...
2020-04-29 00:17:20 824
原创 吃瓜群众如何理解五种IO模型
五中io模型在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。下面就分别来介绍一下这5种IO模型的异同。1.阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出C...
2020-03-29 16:32:00 313
原创 TCP 协议簇之TCP协议问题
OSI 七层模型什么是TCP ?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议什么是面向连接?面向连接不是指物理层面的电路的连接,是指通信双方在通信过程中保持某种状态,直到通信结束。一条tcp连接的建立,对TCP协议本身而言,实质是意味着通信双方序列号、错误校验等...
2020-02-03 22:20:46 554
原创 tesseract 训练入门--记一次50张简单验证码的训练过程
省略各种tesseract和各种包的安装,默认有python基础需要有java环境以便操作训练工具jTessboxeditor,jdk和训练辅助工具的安装此处不讨论.本人使用ubuntu18.04 环境,训练工具是在windows虚拟机上安装java后使用的1. 得到验证码图片 发现安居客的验证码较为简单,这里借用安居客验证码接口下载验证码,代码仅供参考,验证接口也许以...
2019-05-23 10:13:50 5325 4
原创 PAT甲级1014
#include#include#include #includeusing namespace std;int n,m,k,q,i,j;int hour,minute;long ans[1010];//结束时间 long need[2010];// 服务需要时间 struct windows{ int endtime;//窗口队伍的最后服务时间 int poptime
2017-05-21 19:23:33 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人