自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Go-zero 文件上传

go-zero文件上传

2024-04-10 10:25:25 611 2

原创 mac 使用micro v3 生成 proto文件

micro v3

2023-08-19 13:57:33 140

原创 golang 结构体和内存对齐

内存和CPU之间的交互, CPU通过地址总线去内存选址 如果地址总线 8 位则能找到 256 个地址所以,只能用到256的内存。32位 地址总线就可以寻址 4G内存。每次操作一字节太慢,如果每次操作4字节,则需要32位数据总线,如果每次操作8字节则需要64位地址总线。内存的设计是上图, 每次寻址是从不同的chip中选出相同位置的一个字节,来组成一个连续的8个字节。通过这样的并行操作,提高了内存访问效率,但是这样的设计,address的选址必须是8的倍数。

2023-08-18 10:46:15 124

原创 SqlAlchemy转dict新玩法

Sqlalchemy 转dict

2023-02-15 16:10:38 245

原创 golang 字符串

golang的字符串

2022-12-16 16:09:47 228

原创 golang的Context

golang的context

2022-09-09 20:50:19 181

原创 Django单元测试请求头加Authorization

Django单元测试请求头加Authorizaiton字段

2022-08-26 16:59:41 450

原创 简单分布式锁

分布式锁简述: 分布式锁主要解决在不同服务器上访问临界资源导致的错乱, 在目前手上业务中主要解决对于mysql的读写问题。首先第一种方案:​ Mysql的悲观锁,带来的负面影响是并发性不高,可能会导致数据库宕机第二种方案:​ Mysql的乐观锁,如果两个服务要修改一条数据,首先访问这条数据,并记录其版本号,然后在修改的时候where条件里加上版本号的筛选,如果修改成功则会连带版本号一起修改,而修改不成功则说明,修改前版本号已经被修改过了,即被其他服务拿到锁并修改了。第三种方案:​ 使用r

2022-03-30 10:03:06 737

原创 MYSQL事务

Mysql事务Mysql事务的四个特性(ACID)原子性: 实现原理undolog一致性:根据其他三个特性来实现一致性隔离性: 锁和MVCC持久性: redologMysql的日志Innodb 存储引擎​ undolog 保持原子性和mvcc​ redolog 持久性server​ binlog 主从复制​ slowlog 记录慢查询​ relaylog 中继日志​ errorlog 错误日志undolog: 是记录一条数据有多个历史版本,可以用来数据

2022-03-28 10:22:18 1019

转载 Kafka学习

Kafka消息中间件一、为什么使用Kafka1.1 什么是Kafka​ Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览、搜索和其他用户的行动)是在现代网络上的许多功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决

2020-11-23 21:53:46 178

原创 Pandas的基本使用

Pandas的基本使用一、查询使用单个label值进行查询import pandasdf = pandas.DataFrame(Data)#得到单个值df.loc['2018-01-03', 'bWendu']#得到一个Seriesdf.loc['2018-01-03', ['bWendu', 'yWendu']]使用值列表批量查询#得到Seriesdf.loc[['2018-01-03', '2018-01-04'], 'bWendu']#得到DataF

2020-11-22 17:41:35 547

原创 解决pandas写大量数据到mysql,报system error: 32 Broken pipe

把数据切成以一万为单位进行存储 size = 10000 df_size = len(df) num = df_size//size end_ = 0 for i in range(num): begin = i*size end = begin+size end_ = end print(begin,end)

2020-11-17 15:53:18 396

原创 协程的简单使用

import asyncioloop = asyncio.get_event_loop()async def insert(report_date, init_asset_entity_list, section): passif __name__ == "__main__": tasks = [] for section in section_list: tasks.append(insert(report_date, init_asset_entity

2020-11-12 18:30:03 183

原创 IO多路复用select/poll/epoll介绍

IO多路复用select/poll/epoll介绍为了搭建一个服务器,要接受很多的请求,应对高并发,要用多线程,那就面临上下文切换那就要用单线程来应对高并发,应对IO有DMA不会让数据丢失。在linux中,一切皆文件,我们会写一个while True来遍历,然后用if判断里面是否有内容。select流程首先将用户态的rset(就是一个bitmap,文件描述符)拷贝到内核态中。在内核太中遍历rset标记有内容文件的位置,有数据的那个FD会被置位。然后select返回有数据的,如果

2020-10-02 10:39:28 170

原创 scrapy框架常用从头到尾巴

总结scrapy框架一. 核心组件和中间件引擎 engine 自动运行,无需关祖,会自动组织所有的请求对象,分发给下载器下载器 downloader 从引擎处获取到请求对象后,请求数据爬虫 spiders scrapy.Spider 普通的爬虫 scrapy.CrawSpider 可设置规则的爬虫类 Rule规则类 start_requests()开始函数调度器 scheduler管道 Item pipeline 清理HTML数据 验证爬去的数据(检查item包含某些字段)

2020-09-05 16:56:48 562

原创 Mysql数据库 常用函数

一 常见数据库的函数1 聚合函数count() 统计行数sum() 计算总和max() 最大值min() 最小值avg() 平均值2 字符函数concat(a, b) 将a和b拼接成一个字符串length("子符串") 计算字符串的字节长度char_length() 计算字符个数lower() 小写转换upper() 大写转换replace(str, sub, replace_str) 替换子子符串trim() 同python的strip()函数

2020-08-29 07:30:45 402

原创 Djanog环境下运行python运行脚本

当我们在Django环境中想进行测试接口时,你需要Django环境,这样你就可以运行如make_password等函数。import os,syssys.path.insert(0,'你的项目路径')os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bqgpro.settings') #这一行可以在你的manange.py中找到import djangodjango.setup()...

2020-08-15 14:35:25 216

原创 Ubuntu18换阿里源

sudo vim /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates m

2020-08-10 22:05:02 1011

原创 单例设计模式python实现

用new创建class Person(object): __instance=None def __new__(cls,*args,**kwargs): #思路,判断__instance的值是否为None,如果为None,则赋值,如果不为None则直接返回 if not cls.__instance: cls.__instance = super().__new__(cls,*args,**kwargs) return cls.__instance p1=Pers

2020-06-12 15:37:51 128

原创 python的系统模块

syssys.argv 可以从程序外面向程序中进行传参,一般适用于命名行为运行文件的命令:python filepath argv1,argv2…sys.exit(code) code为0则表示程序正常结束,如果为其他数字则表示异常 退出程序结束一段代码,根据需求,可以尝试采用break,return【只是用在函数中】,sys.getdefaultencoding() 打印字符编码格式sys.getfilesystemencoding() 打印字符编码

2020-06-09 15:30:38 161

原创 python的os模块

OS模块#一、属性#获取操作系统的类型os.name nt—>windows posix---->linux Mac OS#获取当前系统中的环境变量os.environ#二、OS模块下的函数1、listdir(path) 列出指定路径下的所有内容,返回一个列表2、mkdir() 创建目录3、rmdir() 删除目录4、remove(),删除文件5、stat() 返回文件的属性6、system() 执行系统

2020-06-08 17:29:45 136

原创 python time模块,datetime模块,calender模块

名词解释:UTC 世界标准时间DST 夏令时a.时间戳以整数或符点型时间的三种表示方式之间的相互转换【时间戳,时间的元组形式,时间的子符串】1、time 获取当前时间的时间戳t1=time.time()2、获取当前世界标准时间元组t2=time.gmtime()3、获取当地时间的时间元组t3=time.localtime()4、将时间元组转换为时间戳t4=mktime(t3)5、将时间戳转换为时间字符串形式,默认格式t5=ctime(t4)print(t5)6、将时间元

2020-06-08 16:57:18 161

原创 装饰器的前世今生

概念在不修改元函数或者原对象的基础上,给该函数或者对象增加新的功能这种工作机制在python中被成为装饰器【Decorator】语法:装饰器的本质就是一个闭包【Closure】闭包的写法def outter1(): num1=10 def inner1(): print (num1) return inner1f1=outter1() f1()#装饰器的书写语法def outter2(num): def inner2(): print(num) retu

2020-06-08 12:34:02 117

原创 python的抽象类

抽象类:类中可以存在抽象方法,类中的抽象方法是由子类来实现,如果通过类的实例是不能被调用的抽象方法,只能由子类的实例对象来调用(子类要重写抽象方法)。class Print: def black_print(msg): raise Exception('必须子类实现') def rgb_print(msg): passprint=Print()print.black_print('sss') #应该抛出异常写子类来重写父类方法class Print:

2020-06-05 16:32:40 256

原创 with上下文

“”"with时上下文的关键字,将使用with的对象交给python上下文管理器1)当对象进入上下文时,调用对象的__enter__()方法,如果方法有返回值,则是用as接收2)当对象退出上下文时,调用对象的__exit()__方法,如果方法返回False,若有异常抛出如果返回True,若有异常不会抛出3)enter(self)4)exit(self,except_type,except_val,except_traceback)“”"class DB(): def __init__

2020-06-05 10:26:12 154

原创 Python数据库编程

在世纪业务中,会产生大量的数据,数据库可以将这些数据永久地保存起来。在Python中针对Mysql可编程的库:pymysql,mysqlclientpymysql安装 pip install pymysqlfrom pymysql import connetconn=Connect( host="127.0.0.1", user="root", password="root", port=3306, db='pdb', charset='utf8',

2020-06-04 17:46:08 769

原创 mysql常用函数

在mysql中存在非常使用 函数,函数时可以在sql中直接使用select 语句中使用where 语句使用order by 语句中使用group by 语句中使用having 语句中使用--按员工的入职年进行排序--year()可以从日期数据库中提取年字符函数lower() 小写转换upper() 大写转换concat() 字符串拼接length() 字节的长度char_length() 字符的个数instr(str,sub)获取sub在str首

2020-06-04 13:48:02 150

原创 Mysql 子查询

子查询:查询语句中包含一个或者多个其他的查询语句,内部的查询语句称之为子查询条件中使用如果子查询的结果是多条记录(单列),作为条件使用时,应该用in或者not in--查询各部门最高薪资的员工信息select * from tb_empwhere salary in(select max(salary)from tb_empgroup by dept_id);如果子查询的结果时单个,可以使用= , > ,< ,>=,<=,!=连接中使用join创建视图视

2020-06-03 17:50:47 272

原创 数据库事务

数据库的事务,指完成一系列的数据库操作的整个过程,我们称之为事务,在数据库中,事务都具有ACID特性。事务的ACIDAtomicity(原子性):事务开始到结束期间的所有操作,要莫都成功,要莫都失败。Consistency(一致性):事务开始和结束时的水晶保持一致性。Isolation(隔离性):多个事务之间互不影响。Durability(持久性):数据存储后,无论系统是否崩溃,数据将永久存在。(不受影响)事务的基本操作begin 开启事务commit 提交事务ro

2020-06-03 16:52:40 97

原创 mysql多表查询,约束增删改

等值条件连接等值条件连接,左表的某一列和右表的某一列的列值相等的情况时进行连接select a.,b.from 左表 as a, 右表 as bwhere a.连接列名=b.连接表名【注意】若n个表相连接时,必须有n-1个等值连接条件join内连接语法:select 字段列表from 表1 【as 别名】join 表2 【as 别名】 on (表1.字段=表2.字段)[where 语句][order by [表明.] 语句][limit offset ,size][group

2020-06-03 14:47:45 209

原创 having聚合函数

同样是条件语句,针对的是聚合函数的。和where的区别,可以使用别名,但不能用在select 里没有出现的字段,出现在group by函数之后可以把聚合函数作为条件。select dept_id,round(avg(salary),2) as ‘平均薪资’from tb_empgroup by dept_idhaving count(dept_id)>=3聚合函数表达式作为条件语句时,必须使用having不能用where...

2020-06-03 09:25:06 3047

原创 mysql 的 CUSD

CUSD 就是增改查删的单词所写。插入数据单行插入数据: insert into 表名 【(列名,列名)】 values(值)数据类型: 数值型 1,字符类型‘列值’,日期类型‘日期格式的字符串’批量数据插入:insert into (列名,列名) values(列名1的值,列名2的值 …),(列名1的值,列名2的值 …),(列名1的值,列名2的值 …),(列名1的值,列名2的值 …),…(列名1的值,列名2的值 …);更新数据update 表名

2020-06-02 18:22:27 187

原创 mysql表的修改

修改 表名:alter table 表名 rename 新表名 例:alter table tb_person rename tb_emp;增加列:alter [column] tbale 表名 add 列名 类型 【约束】 【comment 注释】; alter table tb_dept add tel char(12);增加外键字段 alter table 表名 add 列名 类型 references 表名(id);alter table tb_emp a

2020-06-02 15:18:29 101

原创 Docker的操作命令

安装docker在Centos7中安装Docker非常简单,运行如下命令:yum updateyum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install -y docker-ce systemctl enable dockers

2020-06-02 14:39:35 102

原创 python的linux文件系统结构篇 小白必看

一、文件系统结构linux系统最神奇的地方就是一切皆文件,无论是磁盘的挂载,还是目录什么的都可以把它看成是一个文件。所以我先列出根目录下几个常见的目录,以及他们的大概作用。bin:用于存放常见的命令etc:存放系统的配置文件home:这个目录下面存放着普通用户的家目录,如果不是自己设定的话,这个文件下用户的家目录的名字和用户名是一致的。root:root用户的家目录lib:系统链接库...

2020-04-21 23:49:50 346

原创 python的linux基础篇 小白必看

linux基础命令w:查看连接的用户 如果TTy下面的pts表示的是远程连接who:查看用户信息 和w相比信息比较少一点shell:用于用户的操作与内核进行翻译whatis:对命令进行描述which:查找命令所在的位置clear:清屏 这里不是严格意义上的清除,这里表示对命令行进行翻译,向上划还是可以看到以前的命令man:查看帮助 ...

2020-04-19 14:23:25 239

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除