自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【golang基础教程(持续更新ing)】

简介特点应用领域git下载&安装:git下载vscode下载:vscode下载自定义插件配置go常用命令go语言标识符&关键字标识符Go中对各种变量、函数等命名时使用的字符序列称为标识符。(一)标识符的命名规则(二)注意事项Go中有保留关键字25个,详情如下表:预定义标识符就是事先定义好的有特殊意义的词,与关键字类似。go语言数据类型这部分先介绍基本数据类型,下面会详细介绍每个复杂数据类型变量相当于内存中数据存储空间的表示,通过变量名访问到变量值,直接上代码........

2022-06-03 03:18:02 1494

原创 读万卷书,行万里路

文章目录幸福的人生都有相似的幸福,可不幸的人生各有各的不幸。莫泊桑说:“生活不可能像你想象的那么美好,也不可能像你想象的那么糟,有时人脆弱的一句话就可以泪流满面,有时扭头一看发现自己已经咬牙走了很长的路。”...

2021-02-08 15:41:00 155 2

原创 博客知识目录

博客目录python基础:更完python技巧、面试总结:持续更新python包和模块:持续更新Django基础:持续更新DRF源码分析:暂时停更常见面试题目:长期更新字符串:持续更新排序:比较排序更完动态规划:持续更新查找:持续更新redis源码分析:之后会全部更新redis实战:暂时没有计划MySQL面试总结:在完成中爬虫项目:不定期更新......

2020-12-26 02:16:07 200

原创 【杂谈】protobuf详解

我们在日常开发过程中进行网络通信和数据交换等应用场景中经常使用的技术是json或xml,最近接触了Google的Protobuf。在查阅相关资料学习 ProtoBuf 以及研读其源码之后,发现其在效率、兼容性等方面非常出色。在以后的项目技术选型中,尤其是网络通信、通用数据交换等场景应该会优先选择 ProtoBuf。下面详细的看下protobuf相关的内容 (protocol buffer) 是谷歌内部的混合语言数据标准。通过将结构化的数据进行序列化,用于通讯协议、数据存储等领域和语言无关、平台无关、可扩展的

2022-07-14 15:40:34 3635 1

原创 【专题】python自定义封装logging

python的logging模块详细介绍:python logging模块

2022-07-13 16:03:14 544

原创 【专题】python常用数据类型转换

python常用数据类型转化

2022-07-08 16:16:09 473

原创 【专题】python封装MySQL类

Python创建连接MySQL类

2022-07-07 19:56:37 603

原创 【专题】python中各种时间格式之间转化

python中各种时间格式之间转化

2022-07-06 20:19:45 495

原创 【golang并发编程】

golang并发编程

2022-06-03 03:32:14 108

原创 TCP和UDP的区别&TCP协议如何保证可靠性

基于上面的区别;TCP和UDP的优缺点也很明显了。UDP 优点:简单、传输快。缺点:不可靠,不稳定;UDP应用场景:TCP:优点:可靠 稳定TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认. 窗口. 重传. 拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源。缺点:慢,效率低,占用系统资源高,易被攻击TCP应用场景:当对网络质量有要求时,比如HTTP,HTTPS,FTP等传输文件的协议;POP,SMTP等邮件传输的协议。参考:https://blog.csd

2022-06-03 02:09:34 462

原创 专题4:python(list&tuple区别)&(索引和切片的理解)

元组和列表最大的一个区别就是:,列表是可以修改的,元组不支持修改(这是面试必须点出的)可以看到,对于列表和元组来说,虽然它们都是空的,但元组却比列表少占用 16 个字节,这是为什么呢?事实上,就是由于列表是动态的,它需要存储指针来指向对应的元素(占用 8 个字节)。另外,由于列表中元素可变,所以需要额外存储已经分配的长度大小(占用 8 个字节)。但是对于元组,情况就不同了,元组长度大小固定,且存储元素不可变,所以存储空间也是固定的。对于静态变量,如果在内存中占用的空间不大,python会暂存这部分内存,这

2022-06-02 02:45:09 199

原创 【golang标准库(持续学习ing)】

package mainimport ( "fmt" "strconv" "strings" "sync")var ( instance *School once sync.Once)type School struct { Name string Tel string}// 同步锁 保证并发安全func CreateSchool(name, tel string) *School { once.Do(func() { fmt.Println("---

2021-11-30 22:59:10 279 1

原创 使用go-retryablehttp包实现http“链接池”效果

使用go-retryablehttp包实现http“链接池”效果在go中使用http的方式获取数据时每次通常都会创建一个http的Client对象处理请求,但是如果一次任务中请求的非常频繁,每一次请求都要创建一个Client对象的话势必会造成链接资源的浪费。在实际中我们知道有一种“链接池”的概念,就是说提前在链接池中创建好链接,每一次请求前都从这个“链接池”中获取链接,请求处理完毕后不释放链接而是将这个链接重新放入链接池中,以便下一次请求使用,这样便十分有效的利用了链接资源,同时也有效的降低了服务器的负

2021-10-25 22:45:44 1468 1

转载 python模块—inspect

python inspecttype and memberRetrieving source codeclass and functionsThe interpreter stackinspect的主要作用对是否是模块,框架,函数进行类型检查获取源码获取类或者函数的参数信息解析堆栈type and memberinspect.getmembers(object[, predicate])第二个参数通常可以根据需要调用如下16个方法;返回值为object的所有成员,以(name,va

2021-09-13 03:24:55 757

原创 Zookeeper

文章目录Zookeeper简介分布式系统定义及面临的问题ZooKeeper如何解决分布式系统⾯临的问题Zookeeper的基本概念Zookeeper环境搭建Zookeeper基本使用Zookeeper应用场景Zookeeper深入进阶Zookeeper源码分析Zookeeper简介分布式系统定义及面临的问题ZooKeeper最为主要的使⽤场景,是作为分布式系统的分布式协同服务我们将分布式系统定义为:分布式系统是同时跨越多个物理主机,独⽴运⾏的多个软件所组成系统。类⽐⼀下,分布式系统就是⼀群⼈⼀起⼲活

2021-06-03 17:23:40 302

原创 分布式理论&架构设计

分布式分布式理论分布式架构系统回顾分布式系统概念分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。       俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。分布式和集群

2021-05-25 16:06:13 237

原创 分布式集群架构场景化潜在问题及解决⽅案

文章目录一致性Hash算法Hash算法应用场景普通Hash算法存在的问题一致性Hash算法手写一致性Hash算法Nginx配置一致性Hash负载均衡策略主要内容第一部分:一致性hash算法第二部分:集群时钟同步问题第三部分:分布式ID解决方案第四部分:分布式调度问题第五部分:Session共享分布式和集群分布式和集群是不⼀样的,分布式⼀定是集群,但是集群不⼀定是分布式(因为集群就是多个实例⼀起⼯作,分布式将⼀个系统拆分之后那就是多个实例;集群并不⼀定是分布式,因为复制型的集群不是拆

2021-05-19 17:45:47 250

原创 分布式消息服务中间价——《RabbitMQ》

文章目录介绍主要目的主要内容消息中间价概述分布式架构通信分布式架构通信原理分布式同步通信的问题分布式异步通信模式消息中间件简介概述自定义消息中间件主流消息中间件及选型选取原则RabbitMQRocketMQKafka消息中间件应用场景JMS规范和AMQP协议介绍主要目的了解消息中间件背景知识、使用场景、发展掌握RabbitMQ、RocketMQ、Kafka这三款主流的消息中间件的架构,模型,和使用(开发、安装、集群部署、运维、监控)掌握消息的可靠性、幂等性、顺序消息、延迟消息、事务消息等进阶的知

2021-04-29 16:14:33 431

原创 Web服务器——《Nginx》

文章目录Nginx基础知识第⼀部分:Nginx基础回顾(Nginx是什么?能做什么事情(应⽤在什么场合)?常⽤命令是什么?)第⼆部分:Nginx核⼼配置⽂件解读第三部分:Nginx应⽤场景之反向代理第四部分:Nginx应⽤场景之负载均衡第五部分:Nginx应⽤场景之动静分离第六部分:Nginx底层进程机制剖析Nginx源代码是使⽤C语⾔开发的,所以呢我们不会再去追踪分析它的源代码了。Nginx基础知识...

2021-04-29 15:36:57 119

原创 字符串(python)——字符串数组中的最长公共前缀

文章目录字符串数组中的最长公共前缀字符串数组中的最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。def findLongestCommonPrefix(strarr): if not strarr

2021-04-28 17:33:04 1197

原创 python—判断链表是否有环并找到入环节点

文章目录判断链表是否有环并找到入环节点判断链表是否有环并找到入环节点class LNode: def __init__(self, val): self.val = val self.next = Nonedef exitLoop(head): if not head: return None p1 = p2 = head while p2 and p2.next: p1 = p1.next p2 = p2.next.next if p1

2021-04-26 12:31:22 227

原创 字符串篇(python)——字符串数组中两个字符串的最小距离

题目描述给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。def findMinDistance(strs, str1, str2): if str1 not in strs or str2 not in strs: return -1 index_l1 = [i for i, j in enumerate(strs) if j == str1].

2021-04-21 20:46:58 524

原创 分布式存储系统——《高性能分布式存储MongoDB》

文章目录MongoDB体系结构NoSQL和MongoDBMongoDB体系结构MongoDB 和RDBMS(关系型数据库)对比什么是BSONBSON在MongoDB中的使用MongoDB在Linux的安装和配置Mongodb GUI工具MongoDB命令MongoDB的基本操作MongoDB集合数据操作(CURD)数据添加数据查询数据更新数据删除MongoDB聚合操作聚合操作简介MongoDB 聚合操作分类聚合管道MapReduce编程模型MongoDB索引index什么是索引索引类型索引和Explain分

2021-04-20 14:38:04 659

原创 Django—实现一个小需求《日期相减、时间差转化为天时分秒》

文章目录日期相减、时间差转化为天时分秒日期相减、时间差转化为天时分秒首先要将两个时间相减,计算时间差# 举个栗子from datetime import *str_time = '2021-04-13 15:51:43'# 将str时间转化为datetime格式origin_time = datetime.strptime(str_time,'%Y-%m-%d %H:%M:%S')now_time = datetime.now()# 计算total_time = now_time - o

2021-04-14 14:26:56 1468 3

原创 分布式缓存系统——《高性能分布式缓存Redis》

- 理解缓存的使用场景- 理解缓存原理- 了解常见缓存及分类- 理解服务器端缓存- 了解缓存的优势和代价- 理解缓存的读写模式- 掌握缓存的常见设计思路并能够运用到项目中

2021-04-13 16:30:10 274

原创 分布式存储系统——《MySQL海量数据存储与优化》

- MySQL架构原理和存储机制 MySQL体系结构(内存结构、磁盘结构)、SQL运行机制、存储引擎、Undo/Redo Log等等- MySQL索引存储机制和工作原理 索引存储结构、索引查询原理、索引分析和优化、查询优化等- MySQL事务和锁工作原理 事务隔离级别、事务并发处理、锁机制和实战等- MySQL集群架构及相关原理 集群架构设计理念、主从架构、双主架构、分库分表等- 互联网海量数据处理实战 ShardingSphere、MyCat中间实战操作,分库分表实战- MySQL第三

2021-04-07 22:41:42 1222 1

原创 Django项目中使用django-apscheduler执行定时任务

文章目录依赖的模块Django中的配置使用问题依赖的模块pip install django-apschedulerDjango中的配置settings.pyINSTALLED_APPS = [ ...... 'django_apscheduler',#定时执行任务]迁移python manage.py migrate创建两张表:django_apscheduler_djangojob和django_apscheduler_djangojobexecution使用

2021-04-07 22:03:38 1761 10

原创 uWsgi+Nginx部署Django项目常见的问题及总结

Centos 查看防火墙状态及指定端口防火墙查看防火墙状态firewall-cmd --state1如果显示 not running 表示已经关闭防火墙。启动防火墙systemctl start firewalld1关闭防火墙systemctl stop firewalld1设置开机是否启动防火墙systemctl enable firewalldsystemctl disable firewalld12重启防火墙systemctl restart firewalld1

2021-04-01 15:48:26 318

原创 Ubuntu/Centos+uWsgi+Nginx+阿里云服务器部署Django项目

文章目录阿里云创建实例MySQL安装和配置Git安装和配置uwsgi安装和配置Nginx的安装和配置总结以下均以Ubuntu为例阿里云创建实例这有道云不能上传图片,简单描述,镜像选择的是Ubuntu,其他按照步骤来就行,注意添加规则,默认不添加MySQL的服务。python环境搭建# 更新软件sudo apt-get update# 安装python3和pipsudo apt-get python3-devsudo apt-get install python3-pip# 安装虚拟环

2021-03-30 11:43:47 225 1

原创 Mybatis

文章目录第一部分:自定义持久层框架分析JDBC操作存在的问题问题解决思路自定义框架设计自定义框架实现第一部分:自定义持久层框架分析JDBC操作存在的问题public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { // 加载数据库驱动

2021-03-26 23:24:14 128

转载 python源码解读

文章目录准备工作Python整体结构源码目录Python对象Python内对象类型对象对象的创建类型的类型Python中的整数对象小整形对象大整数对象准备工作Python整体结构python架构主要分为三部分python文件python解释器scanner词法分析,将代码且分为一个个tokenparser词法分析建立ASTcompiler根据AST生成python字节码code Evaluator(虚拟机)执行这些字节码运行时环境内建对象:list dict内存分配器:和

2021-03-24 09:22:25 2703 1

原创 拉勾网教育课程之《数据结构与算法面试宝典》

数据结构之一题多解栈栈的特性与使用特点: 先进后出案例1判断字符串括号是否合法字符串中只有字符“(”和“)”。合法字符串需要括号可以配对。比如:输入:"()" 输出:true解释:() ()() (())都是合法的实现一个函数,来判断给定的字符串是否合法解题思路模拟 模拟题目的运行 字符串 "()()(())"规律 尝试总结出题目的一般规律和特点 每个左括号"("或者右括号")"都要完成配对 才是合法的 配对可通过消除法来消除合法的括号,如果

2021-03-21 00:05:46 698 1

原创 TCP三次握手和四次挥手

文章目录TCP协议TCP协议是什么TCP协议的作用TCP工作模式TCP三次握手SYN攻击为什么进行三次握手,而不是两次或者四次TCP四次挥手TCP协议TCP协议是什么传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在 TCP 协议中,通过三次握手建立连接。通信结束后,还需要断开连接。如果在发送数据包时,没有正确被发送到目的地时,将会重新发送数据包TCP协议的作用TCP 协议是以面向连接的方式进行通信的,其作用如

2021-03-15 11:50:05 79

原创 HTTP状态码总结

文章目录状态码分类状态码列表当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。状态码分类分类分类描述1xx信息,服务器收到请求,需要请求者继续执行操作2xx成功,操作成功接收并处理3xx重定向,需要进一步的操作完成请求4xx客户端错误,请求包含错误语法或者

2021-03-14 20:09:06 95

原创 HTTP请求中POST和GET的区别

原理区别一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息

2021-03-14 16:53:17 207

原创 一次浏览器输入url经过,到底发生了什么

文章目录URL解析DNS解析应用层客户端发送HTTP请求传输层TCP传输报文网络层IP协议查询MAC地址数据到达数据链路层服务器端接收数据并响应请求关闭TCP连接浏览器处理数据信息并渲染页面参考文章从浏览器输入URL到浏览器显示页面发生了什么,这是面试中经常会被问到的题目,今天我们就详细看看每个流程执行的细节URL解析URL是什么URL全名叫统一资源定位符,uniform resource Locator,字面上来理解,它就是用来定位资源的。相当于图书上面的标签,有了这些标签,管理员可以很快的找到相

2021-03-14 11:12:11 153

原创 DNS域名解析原理及过程

文章目录基本概念DNS域名域名结构DNS记录DNS域名解析过程基本概念DNS域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Inte

2021-03-14 09:41:12 2109

原创 小总结、大惆怅

文章目录夜很深了,我一点睡意也没有,尽管身心俱疲酒足饭饱之后总是惆怅许久,啥也不想干,甚至脑子也不想动,只想坐在电脑前,带上耳机,随便播放点音乐,可能是老歌,也可能是英文歌或是粤语歌,其实都不那么重要。这段时间很忙,也可以说是瞎忙,唉其实谁不是在瞎忙,只是在为那些所谓的理想奋斗。身在异乡,在头脑清醒时,我时刻提醒自己保持状态,生活自律,努力工作;往往在深夜的时候,我回头一看不禁自问有些事我去做了到底有意义吗?生活可能带给我永远只是惊吓和意外,我却无能为力,返回给生活的是强颜欢笑,一切照旧。可能我觉得

2021-03-13 04:28:53 340 2

原创 树面试题总结

文章目录树的几个概念二叉树概念存储方式操作平衡二叉树(AVL)红黑树B树B+树常见面试题二叉树的三种遍历方式二叉树的最大深度二叉树的层次遍历有序数组转化为二叉树判断是否为对称二叉树树的几个概念由一个或一个以上的节点组成,存在一个特殊的节点,成为树根。其中的每一个子集合本身也是一种树形结构,即此根节点的子树。几个关于树的专有名词度数:每个节点所有子树的个数层数:树的层数高度:树的最大层数树叶或终端节点:度数为零的节点就是树叶。父节点:每一个节点都有连接的上一层节点。子节点:每一个节点都有连

2021-03-09 08:34:45 396

原创 详解MySQL-InnoDB中索引与算法

文章目录引言为何用索引引言索引在应用程序设计和开发中是一个重要的方面。往往实际开发中部分工程师对其重视或认知程度不足,忽略索引的重要性,导致要么不用索引,要么滥用索引,这样都会对系统的性能产生影响。博主对索引这部分知识进行了总结和归纳,其中也附加自己的认知,分享给大家一起讨论和理解。为何用索引大家仔细想想是不是大部分的系统读占比很大,而且在生产环境中,最容易出问题也是复杂的查询操作,这都是源自于一条条的SQL,SQL优化就成为重中之重,这其中索引起到非常关键作用。...

2021-02-25 16:34:23 199

空空如也

空空如也

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

TA关注的人

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