自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [python面试题] 装饰器是什么,有什么功能,能用在什么业务场景?

概念:1.装饰器的实现是由闭包支撑的;2.装饰器本质上是⼀个python函数,它可以在让其他函数在不需要做任何代码的变动的前提下增加额外的功能;3.装饰器的返回值也是⼀个函数的对象,它经常用于有切面需求的场景,实现路由传参,flask的路由传参依赖于装饰器,浏览器通过url访问到装饰器的路由,从而访问视图函数获得返回的HTML页面; 应用场景:1.可以在外层函数加上时间计算函数,计算函数运行时间;...

2018-04-25 21:43:12 6413

原创 [python笔记] python的封装,继承,多态

面向对象的三大特征:  1. 封装:属性和方法放到类内部,通过对象访问属性或者方法,隐藏功能的实现细节.当然还可以设置访问权限;  2. 继承:子类需要复用父类里面的属性或者方法,当然子类还可以提供自己的属性和方法;  3. 多态:同一个方法不同对象调用同一个方法功能的表现形式不一样,例如:1.不同的两个对象,字符串的加法和整数的加法,同样是加法,实现的功能是不一样的;2.这两个对象之间没有任何直

2018-04-24 19:24:24 9463 5

原创 北斗推送服务架构图

推送后台推送逻辑流程图Created with Raphaël 2.3.0策略启动是否配置实时触发条件?kafka游戏日志经过flink的生成实时策略名单推送后台推送网关下游推送接口循环读取策略的离线策略名单yesno数据流离线推送时序图#mermaid-svg-OmaC40gffILSUtkp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OmaC40g

2022-05-17 16:06:33 604

原创 大数据lambda架构实现方案

大数据lambda架构实现方案基础结构此项目主要为拓客查找潜在企业客户,展示企业客户详情需求提供服务。借鉴DDD设计思想对域进行划分,由于需求比较简单明确,此处主要按主体类型划分为企业客户域、店铺客户域等。目前仅针对企业客户域进行了重新设计,目录结构如下:.├── app.py <-- 服务入口├── DarkPortal│ ├── dark_portal.thrift <-- RPC接口声明│ ├── connection.py <-- RPC服务配置├── m

2021-06-27 22:09:12 512 2

原创 【python面试题】链表反转

单链表反转【python实现】单链表反转方法头节点开始遍历1. 用三个指针来解决链表反转,`cur`是现在的链表节点,`tmp`暂存`cur.next`,`new_head`指向之前的`cur`2. 其中,`tmp`是保存之前的链条不能断的,很重要尾节点开始递归递归反转链表,递归:从尾节点指向上一级节点,上一级节点指向None,重复这个过程,直到递归结束代码如下:class ...

2020-03-19 11:17:26 470 1

原创 Elasticsearch 原理-小白入门篇

Elasticsearch 原理-小白入门篇一个问题:请说出带“前”字的诗句为什么我没办法立刻找出带“前”字的诗句?什么是倒排索引?倒排索引优化实用搜索系统倒排索引基本结构搜索引擎原理Elasticsearch 简介基本概念专有名词实践例子RESTFUL API索引一个文档获取 / 搜索一个文档文档是否存在更新文档创建文档删除文档版本控制分布式原理ES使用领域总结一个问题:请说出带“前”字的诗句...

2020-03-16 00:46:37 843

原创 Python 如何将多个装饰器合并成一个装饰器

Python 如何将多个装饰器合并成一个装饰器WHY为什么要合并多个装饰器?因为堆叠装饰器虽然说不是不行,但是随着项目越来越大,装饰器越堆越多,我们希望将一些关联性强的装饰器合并在一起,而不是像下面的代码一样,搞得像叠罗汉一样恶心例子:# 公司业务代码其中一个接口 【flask-restplus】class Goods(Resource) @staticmethod @...

2020-03-12 11:30:20 769 1

原创 select, poll, epoll之间的区别

select, poll, epoll之间的区别什么是事件复用技术假设你有一个简单的web服务器,并且那里已经打开了两个socket连接。当服务器从两个连接那里都收到Http请求的时候,它应该返回一个Http响应给客户端。但是你没法知道那个客户端先发送的消息和什么时候发送的。BSD套接字接口的阻塞行为意味着,如果你在一个连接上调用recv()函数,你就没办法去响应另外一个连接上的请求。...

2020-03-05 11:11:08 448

原创 头条监测链接开发

头条回传开发技术文档巨量引擎对接文档: https://ad.oceanengine.com/openapi/doc/index.html?id=580WHAT什么是头条监测链接?就是广告主提供给头条的监测链接,头条用户点击广告主投放广告瞬间,头条将用户个人信息,例如安卓手机的imei号或oaid,ios系统的idfa这些设备号,还有广告名字,投放位置,广告点击时间等信息,通过监测...

2020-03-04 11:10:27 7309 3

原创 日志系统:一条SQL更新语句是如何执行的

日志系统:一条SQL更新语句是如何执行的更新流程​ 更新流程涉及两个重要的日志模块: redo log(重做日志)和binlog(归档日志)。重要的日志模块:redo log不知道你还记不记得《孔乙己》这篇文章,酒店掌柜有一个粉板,专门用来记录客人的赊账记录。如果赊账的人不多,那么他可以把顾客名和账目写在板上。但如果赊账的人多了,粉板总会有记不下的时候,这个时候掌柜一定还有一个专门记录...

2020-02-26 11:41:55 271

原创 货源调度系统

1. 运营人员通过运营后台编辑货源匹配规则,启用后触发货车匹配;2. 货车匹配: 1. feed-service(货主发货) 2. dispatch-flow(将货源id和货源匹配规则id丢给dispatch-task,获取司机id,然后进行货源推送) 3. dispatch-task(主要进行货车匹配,得到司机id)...

2020-02-26 11:22:41 504

原创 MYSQL count(*)这么慢,我该怎么办?极客时间MYSQL笔记

个人笔记总结COUNT(*)实现方式MyISAM引擎把表的总行数存在磁盘上;InnoDB引擎从表中一行行读出来,然后累计计数;上述结论基于不加where过滤条件,加了where,MyISAM也没办法返回的那么快;为什么InnoDB不跟MyISAM一样,也把数字存起来呢?因为MVCC(并发版本控制),不同的会话查同一个表的总行数,要保证可重复读隔离级别的总行数数据正确性,只能一行行...

2020-02-26 11:01:16 706

原创 git 开发规范约定

git 开发规范约定新增功能: fea-需求号-需求简称(以下划线或驼峰分割的英文单词)缺陷修复:fix-缺陷号-缺陷简称(以下划线或驼峰分割的英文单词)紧急修复:hotfix-缺陷号(或修复时间 mmddyyHHMM)-简称例如:fea-101-AddUserAuth, 表示:需求编号是 101 的“增加用户鉴权” 的功能分支。...

2020-02-21 13:52:51 302

原创 Mysql锁

Mysql锁总结:根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁一、全局锁:对整个数据库实例加锁。MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态。使用该命令之后,数据更新语句、数据定义语句和更新类事务的提交语句等操作都会被阻塞。使用场景:全库逻辑备份。风险:如果在主库备份,在...

2020-02-21 13:42:30 110

原创 MYSQL乐观锁

MYSQL乐观锁实现对于按钮等控件,点击后使其立刻失效,不让用户重复点击,避免对同时对同一条记录操作。使用乐观锁进行控制。乐观锁大多是基于数据版本(Version)记录机制实现。即为数据增加一个版本标识,在基于数据库表的版本解决 方案中,一般是通过为数据库表增加一个“version”字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据 的版本数据与数据库...

2020-02-21 10:24:37 259

原创 MYSQL事务隔离个人笔记-极客时间MYSQL四十五讲

Mysql事务隔离笔记事务隔离实例分析Q: 事务B执行过程中,事务A查询得到的V1,V2和V3的返回值分别是多少?A:1. 具体什么值要根据事务隔离级别来分析;2. 事务隔离级别分为:读未提交,读提交,可重复读,串行化;3. 如果是读未提交级别,不管是事务A还是事务B,都是**当前读**,那么事务A读到的V1,V2和V3的值都是2;4. 如果是读提交级别(事务B提交之后,事务A才能...

2020-02-20 20:04:50 486

原创 MYSQL优化技巧-个人总结

MYSQL优化技巧SQL语句慢查询优化思路SQL语句查询慢原因:一种是访问高峰期,查询请求非常多,导致mysql服务器压力很大,导致本来不慢的查询变慢(排队等待SQL执行);MYSQL缓存失效,MYSQL如果对某个表设置了缓存,但是该表频繁更新(shf_goods),那么就会导致缓存失效:MySQL缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的SQL,服务器...

2020-02-20 19:49:35 344

转载 常用conda命令-网上汇总

conda命令conda是什么查看conda的帮助conda 常用命令conda info包管理命令conda list查询安装更新卸载环境管理命令创建环境激活环境删除环境拷贝环境在指定环境下管理包包加速使用国内PIP源进行加速使用国内 conda 软件源加速conda是什么conda 是 Anaconda 下用于包管理和环境管理的工具,功能上类似 pip 和 vitualenv 的组合。安装...

2019-06-12 00:23:35 1142

原创 [网络编程]URI 和 URL

 URI 是 UniformResource Identifier 的缩写。 Uniform规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。另外,加入新增的协议方案(如 http: 或 ftp:)也更容易。 Resource资源的定义是“可标识的任何东西”。除了文档文件、图像或服务(例如当天的天气预报)等能够区别于其他类型的,全都可作为资源。另外,资源不仅...

2018-05-10 21:38:50 383

原创 [python面试题]深拷贝和浅拷贝的区别

深拷贝,浅拷贝非嵌套数据(不可变类型:整数,字符串,元组等)例子:a = 11copy.copy 和 copy.deepcopy 没有区别 都会开辟新空间 存储数据 有嵌套的数据 (可变类型:列表,字典)例子:a = [[1], {'2':2}]copy.copy没有办法保证数据的独立性,拷贝第一层的引用copy.deepcopy完全拷贝所有的层级,都会有自己的空间 不可变类型(元组,数字,字符串...

2018-05-10 21:32:11 1696

原创 [python面试题] 删除列表中所有的3和4

# 删除所有的3和4a = [3, 4, 5, 3, 3, 4, 5, 3, 4, 3, 5]# 0. 边遍历边删除列表里的元素的弊端,删掉一个,后面的元素会顶上,导致删不全a1 = a.copy()for i in a1: # print(i) if i == 3 or i == 4: a1.remove(i)print(a1)# 1. 遍历...

2018-04-28 16:10:06 2328

原创 [python面试题] 保持列表的原顺序并进行去重的5种方法

    L = [4, 1, 7, 4, 4, 6, 2, 1, 6, 6],想办法去掉列表的重复元素,同时保持原来的排列顺序;# 第1种方法,利用集合去重,然后用原列表的index方法排序L = [4, 1, 7, 4, 4, 6, 2, 1, 6, 6]L1 = list(set(L))L1.sort(key=L.index)print(L1)print('\n')# 第2种方法...

2018-04-28 15:47:08 2059

原创 [python笔记] with语句和上下文管理

    python中读写文件的语句是相当少的,代码如下:# 创建文件f = open('output.txt', 'w')# 写入内容进文件f.write('python')# 关闭文件f.close()    但是,这还是不够简洁,有可能会忘记写关闭文件的语句f.close(),python执行写入文件的操作是惰性的,因为读写文件都是io操作,所以执行任务处于较低的优先级,当前没有其...

2018-04-28 15:36:59 219

原创 [python的web框架对比] Flask蓝图和Django路由映射的区别?

1.flask是利用蓝图进行模块划分的,通过app装饰器注册模块蓝图,在主模块统一调用;2.Django路由映射是通过路由正则匹配映射到每一个模块的; 在django中,路由是浏览器访问服务器时,先访问的项目中的url,再由项目中的url找到应用中url,这些url是放在一个列表里,遵从从前往后匹配的规则。 在flask中,路由是通过装饰器给每个视图函数提供的,而且根据请求方式的不同可以一个url...

2018-04-27 15:00:31 1282

原创 [redis数据库问题] 聊聊你对redis的理解

从Redis的特性来说:①redis数据库是一种非关系型数据库,数据以key-value的形式存储,②它是内存型数据库,数据保存在内存中,所以读写速度很快。③当然它也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,以保证数据的安全。④Redis不仅仅支持简单的key-value类型的数据,同时还提供l...

2018-04-27 14:57:45 1376

原创 [业务问题] 手机短信验证码如何保证安全性

    1.手机短信验证码由web服务器的随机函数生成;    2.将验证码传给第三方平台的SDK,然后调用第三方平台的服务器发送短信验证码;    3.只有第三方发送短信验证码成功返回成功的状态码,web服务器才会存储自己生成的验证码;    4.用户获取短信验证码,输入验证码进行注册或者登录时,web服务器会对比用户输入的验证码和数据库的短信验证码,如果一致就通过验证,否则,无法通过验证;  ...

2018-04-27 14:53:54 1208 1

原创 [python笔记]进程,线程和协程的对比

进程、线程、协程对比 请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子) 他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程 只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程 这个老板为了提高生产率,想到3...

2018-04-26 16:57:16 1140 1

原创 [python笔记] 迭代器和生成器的区别

迭代器协议1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退)2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访...

2018-04-26 16:38:14 384

原创 [python面试题] 什么是单例,单例有什么用,业务场景是什么?

单例概念:    单例是一个特殊的类,这个类只能创建一次实例,例子如下:            1.a = Std(name='leo'), b = Std(name='jack'),两者的指向都是name=‘leo’的对象;            2.windows中只有一个回收站,打开一次回收站只会出现一次窗口,双击第二次不会出现第二个窗口 ,这就是单例,对象不会重新创建,只会创建一次;单例的...

2018-04-25 21:21:18 2695

原创 [python笔记] Gil全局解释锁和线程互斥锁的关系

Gil全局解释锁延伸扩展 GIL:全局解释器锁。当我们使用多线程的时候,每一个进程中只有一个GIL锁,那么这多个线程中谁拿到GIL锁,谁就可以使用cpu(ps:多个进程有多个Gil锁,但每个进程中只有一个GIL),所以当python用cpython作为解释器的时候,多线程就不是真正意义上的多线程,属于伪并发的多线程

2018-04-24 17:04:32 1256

空空如也

空空如也

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

TA关注的人

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