自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 gRPC学习笔记

文章目录gRPC学习笔记一、gRPC介绍1.1 gRPC vs. Restful API1.2 四类服务方法二、Protobuf2.1 安装2.2 使用protoc生成代码2.2 protobuf语法三、grpc项目3.1 go.mod3.2 proto3.3 service3.4 server3.5 clientgRPC学习笔记一、gRPC介绍gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Bu

2021-12-28 00:23:20 652

原创 Python常见用法

文章目录Python常见用法一、Pandas-DataFrame数据结构1.1 创建1.1.1 使用列表创建1.1.2 使用ndarrays创建1.1.3 使用字典创建1.2 读取1.2.1 df.loc[idx]1.2.2 df.iterrows()1.2.3 df.iteritems()二、CSV操作2.1 读取文件2.1 写入文件三、字典操作3.1 读取字典3.2 写入字典3.3 移除key四、conda创建虚拟环境4.1 创建新环境4.2 删除环境4.3 使用环境五、APScheduler5.1 安

2021-12-28 00:22:15 1067

原创 利用Django搭建后端服务

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Ma.

2021-06-10 10:04:18 3789 6

原创 IO模型

文章目录IO模型Linux的五种IO模型同步阻塞IO模型(Blocking IO)同步非阻塞IO模型(nonblocking IO)IO 多路复用(IO multiplexing)信号驱动式IO(signal-driven IO)异步IO模型(asynchronous IO)JAVA的IO模型BIO--同步阻塞的编程方式NIO--同步非阻塞的编程方式AIO--异步非阻塞编程方式总结IO模型Linux的五种IO模型五种IO模型包括:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO。简单介

2021-04-23 13:52:56 1092

原创 鉴权技术

鉴权技术一、HTTP Basic Authentication这种授权方式是浏览器遵守http协议实现的基本授权方式。HTTP协议进行通信的过程中,HTTP协议定义了基本认证认证允许HTTP服务器对客户端进行用户身份证的方法。1、客户端向服务器请求数据此时,此时客户端尚未被验证。Get /index.html HTTP/1.0Host:www.google.com2、服务器向客户端发送验证请求代码401,(WWW-Authenticate: Basic realm=”google.com”

2021-04-17 13:26:26 1483

原创 ElasticSearch笔记

一、 ElasticSearch介绍Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(1PB=1024TB)的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。Elaticsearch,有全文检索的功能(倒排索引):把一句话分成各个词,查询的时候根据关键字

2021-04-03 13:34:24 1139

原创 Docker(三) 通过gitlab部署CICD

文章目录Docker(三) docker通过gitlab部署CICD一、 部署gitlab1.1 拉取gitlab镜像1.2 运行gitlab镜像1.3 配置1.4 若发生502报错二、 CI2.1 Runner 搭建2.2 注册Runner2.3 样例测试2.3.1 新建maven-tomcat项目2.3.2 创建.gitlab-ci.yml2.3.3 编写Dockerfile文件2.3.4 编写docker-compose.yml文件三、 CD3.1 安装Jenkins3.2 配置目标服务器及Gitla

2021-03-16 20:06:54 1907

原创 Docker(二):数据卷、Dockefile、Docker-compose

文章目录Docker(二):数据卷、Dockefile、Docker-composeDocker镜像Docker镜像是什么Docker镜像加载原理一、 数据卷1.创建数据卷2.查看全部数据卷3.查看数据卷详情4.删除数据卷5.容器映射数据卷具名和匿名挂载拓展:绑定权限容器文件共享二、Dockerfile自定义镜像Dockerfile创建一个自己的CentOS镜像将自己的镜像推送到阿里云三、Docker-Compose1.下载并安装Docker-Compose2.Docker-Compose管理MySQL和T

2021-03-16 20:06:12 1828

原创 Docker(一):安装、命令、应用

文章目录Docker(一):安装、命令、应用一、 Docker的组成镜像(image):容器(Container):仓库(Repository)二、 Docker的底层原理三、 Docker的安装四、 Docker的中央仓库五、 Docker常用命令5.1 Docker帮助命令5.2 Docker镜像命令5.3 Docker容器命令5.4 Docker其它命令六、 制作自己的镜像,并推送到阿里云七、 Docker应用安装tomcat运行MySQL容器Docker(一):安装、命令、应用Docker 是

2021-03-16 20:05:16 1134

转载 Redis入门科普

文章目录Redis科普为什么用缓存高性能高并发用了缓存后有什么不良后果?redis 和 memcached 有啥区别?redis 的单线程模型为啥redis单线程模型效率这么高?redis 的数据类型和应用场景redis 过期策略内存淘汰机制手写一个 LRU 算法主从架构redis replication 的核心机制redis 主从复制的核心原理主从复制的断点续传无磁盘化复制过期 key 处理复制的完整流程全量复制增量复制heartbeat异步复制哨兵集群哨兵的介绍哨兵的核心知识redis 哨兵主备切换的数

2021-02-09 17:05:36 1132

原创 springboot 构造方法里获取不到@Value注入的值

文章目录springboot 构造方法里获取不到@Value注入的值解决方法:在构造方法的参数里使用@Value注入springboot 构造方法里获取不到@Value注入的值有很多情况,我们想要在构造方法里使用@Value注入的值,却发现值为null,未注入@Componentpublic class User { @Value("userName") private String userName; @Value("password") private St

2021-02-01 20:56:58 2381

原创 Ubuntu20.04 通过certbot安装ssl证书

ubuntu certbot ssl https 证书

2021-01-30 12:37:09 3972 2

原创 消息队列科普

消息队列 科普 入门 教程 入门教程 rocketmq kafka rabbirmq

2021-01-25 12:47:08 684

原创 Ubuntu20.04 安装软件及踩坑

Ubuntu20.04 安装软件及踩坑vmvare安装配置虚拟机 Ubuntu20.04安装 配置Ubuntu20.04安装教程Ubuntu20.04 踩坑Ubuntu20.04 安装 jdk maven docker docker-compose mysql nginx redis

2021-01-25 11:44:23 2205 1

原创 elasticsearch科普

文章目录elasticsearch科普lucene 和 es 的前世今生es 的核心概念Near RealtimeCluster 集群Node 节点Document & fieldIndexTypeshardreplicaes 核心概念 vs. db 核心概念es原理es 的分布式架构原理写数据过程写数据底层原理删除/更新数据底层原理读数据过程搜索数据过程底层 lucene倒排索引es性能优化性能优化的杀手锏——filesystem cache数据预热冷热分离document 模型设计分页性能优化不

2021-01-24 11:31:04 511

原创 【虚拟机vmware】ubuntu、centos 配置网络与静态IP

文章目录Ubuntu20.04 配置方法1. 修改 VMware虚拟网络编辑器2.记录下VMware的网关IP地址3. VMware网络适配器设置5. 网络配置文件设置6.修改网络配置文件CentOS 7 配置方法首先,获取root权限进入网络配置文件最后,重启服务声明:此方法只是作者本机用于ip设置的简洁方法,写一下笔记,可能和不同的机器并不适配,请谨慎食用Ubuntu20.04 配置方法1. 修改 VMware虚拟网络编辑器打开vmware,点击顶部的“编辑"菜单,打开 ”虚拟化网络编辑器“

2021-01-21 17:37:33 1079

原创 【Nginx(七)】搭建高可用集群

1. Keepalived+Nginx 高可用集群(主从模式)2. 配置高可用的准备工作3. 在两台服务器上安装keepalived4. 完成高可用配置(主从配置)5. 最终测试1. Keepalived+Nginx 高可用集群(主从模式)2. 配置高可用的准备工作需要两台服务器需要keepalived需要虚拟ip3. 在两台服务器上安装keepalived使用yum命令安装yum install keepalived-v安装完成之后,在etc里面生成keepa.

2020-07-04 21:27:14 2033

原创 MySQL在Centos上的极简单安装

1. 下载mysql的repo源,这里安装的mysql5.7.20cd /usr/local/src/wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpmrpm -ivh mysql57-community-release-el7-8.noarch.rpmyum -y install mysql-server2. 一路 y默认配置文件路径: 配置文件:/etc/my.cnf 日志文件:var/log/m

2020-06-08 10:25:23 191

原创 广度优先搜索(BFS)

直接上题目Leetcode题目:腐烂的橘子在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,...

2020-03-08 10:36:41 239

原创 数论定理

1. 若num = (n-1)!+1,则[num+1,num+n]为连续的合数。证明:num+1(n+1)!+1+1至少有因子2num+2(n+1)!+3至少有因子3·········num+n(n+1)!+n+1至少有因子n+1所以,均为合数。...

2020-03-08 10:36:08 230

转载 滑动窗口

什么是滑动窗口滑动窗口可以看成数组中框起来的一个部分。在一些数组类题目中,我们可以用滑动窗口来观察可能的候选结果。当滑动窗口从数组的左边滑到了右边,我们就可以从所有的候选结果中找到最优的结果。对于这道题来说,数组就是正整数序列 [1, 2, 3, ····, n][1,2,3,…,n]。我们设滑动窗口的左边界为 i,右边界为 j,则滑动窗口框起来的是一个左闭右开区间 [i,j)。注意,为了编程...

2020-03-08 10:35:11 317

原创 位运算

概况知识点运算符作用l合取&析取^异或实例一num & 1求num的最后一位num1 ^ num2若两数相同,结果为0题目1给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。int singleNumber(vector<int> &nums) { ...

2020-03-08 10:33:45 160

原创 算法小技巧

判断一个数的回文偶数位数回文数(除了11)必定不是质数偶数肯定不是质数。这样至少排除一半多的数据量。bool pdn(int x) { int y = x, num = 0;//int y=x,防止x被改变 while (y != 0) { num = num * 10 + y % 10;//上一次数字的记录进位再加上下一位数 y /= 1...

2020-03-08 10:33:10 212

转载 教你彻底学会动态规划——入门篇

动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个...

2020-03-08 10:32:33 196

原创 滚动数组(空间优化)

费纳波契数列dp[]数组实现const int maxn = 1e5 + 6;ll dp[maxn];int main() { int n; sc(n); dp[0] = dp[1] = 1; for (int i = 2; i <= n; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } ...

2020-03-08 10:29:58 908

原创 背包问题dp

一、 单背包问题解法归纳:一、如果装不下当前物品,那么前n个物品的最佳组合和前n-1个物品的最佳组合是一样的。二、如果装得下当前物品。假设1:装当前物品,在给当前物品预留了相应空间的情况下,前n-1个物品的最佳组合加上当前物品的价值就是总价值。假设2:不装当前物品,那么前n个物品的最佳组合和前n-1个物品的最佳组合是一样的。选取假设1和假设2中较大的价值,为当...

2020-03-08 10:29:24 197

原创 动态规划入门&字符串相关

前言什么是动态规划?动态规划是求解决策过程最优化的数学方法。把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。什么时候要用动态规划?如果要求一个问题的最优解(通常是最大值或者最小值),而且该问题能够分解成若干个子问题,并且小问题之间也存在重叠的子问题,则考虑采用动态规划。动态规划的前提最优化原理(最优子结构性质)最优化原理可这样阐述:一个最优...

2020-03-08 10:28:46 220

原创 gcd最大公约数 && lcm最小公倍数

最大公约数ll gcd(ll x, ll y) { while (y) { ll tmp = y; y = x % y; x = tmp; } return x;}最小公倍数ll lcm(ll x, ll y) { return x * y / gcd(x, y);}分数化简-...

2020-03-08 10:28:07 254

原创 %(mod p)的用法

(a * b) % p = (a % p) * (b % p) % p(a + b) % p = (a % p + b % p) % p(a - b) % p = (a % p - b % p + p) % p(a / b) % p = (a % p * poww(b,p-2,p)) % p为了防止出现负数,x = ((x % p) + p) % p...

2020-03-08 10:27:17 940

原创 欧拉函数

定义:欧拉函数 f(n)为小于n且与n互质的正整数的个数定理:假若n是质数,则f(n)=n-1证明:所有小于n的质数都与n互质,所以f(n)=n-1假若m,n为两个正整数且(m,n)=1,那么就有f(mn)=f(m)f(n)----积性函数φ(n)=n(1-1/p1)(1-1/p2)…*(1-1/px)*其中:p1,p2…px 为n的质因数;求一个数的欧拉函数o(n1...

2020-03-08 10:24:35 257

原创 快速幂 & 慢速乘

快速幂快速求幂,防止爆炸----- 将n转化为二进制a^n % pll poww(ll a, ll n, ll p) { ll ans = 1; while (n) { if (n & 1) ans = ans * a % p;//若不取模就去掉p a = a * a % p; n >>= 1; ...

2020-03-08 10:11:38 413

原创 唯一分解定理

定义任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1^a1 P2^a2 P3^a3 …Pn^an,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。模板struct Node { int p; int ci;} a[70] = {0};int j;void fenji...

2020-03-08 10:09:56 320

原创 扩展欧几里得算法

欧几里得算法求最大公约数int gcd(int a, int b) { while (b) { int temp = b; b = a % b; a = temp; } return a;}求最小公倍数int lcm(int a, int b) { return a * b / gcd(a, b);...

2020-03-08 10:09:14 92

原创 质因子&容斥原理求与n互质的个数

求一个数的质因子//求一个数的质因子,将质因子储存在a[],并返回质因子的个数int init(ll n) { ll i; idx = 0; for (i = 2; i * i <= n; i++) { if (n % i == 0) { a[idx++] = i; while (n % i ...

2020-03-08 10:03:54 347

原创 主席树

分析一、 离散化int getId(int x) { return lower_bound(v.begin(), v.end(), x) - v.begin() + 1;} for (int i = 1; i <= n; i++) { sc(a[i]); v.push_back(a[i]); } sort(v.begin...

2020-02-20 09:25:35 108

原创 最小生成树

分析克鲁斯卡尔算法算法思想:将所有边按照边权最小到大排序,依次枚举所有的边,如果边的两个端点已经在同一个集合中(可连通),就continue,否则合并边的两个端点(将边权加入到答案中),直到有n-1条边参与合并为止。最后如何判断这个生成的子图是不是树?代码#include<iostream>#include<stdio.h>#include<...

2020-02-20 09:24:45 92

原创 并查集

一、题目输入以整数T(1<=T<=25)开始,表示测试用例的数量。接下来是T个测试用例。每个测试用例以两个整数N和M(1<=N,M<=1000)开头。N表示朋友的数量,从1到N标记朋友,然后M行跟随。每一行包含两个整数A和B(A!=B),意思是朋友A和朋友B互相认识。两个案子之间会有一个空行。不认识的朋友不在一张桌子,求至少需要多少桌子。二、解析找到x的掌门人i...

2020-02-20 09:20:31 71

原创 三种存图方式

一、邻接矩阵 int i, j; int a[maxn][maxn]; //a[i][j]代表i-->j if (i-- > j有边) a[i][j] = 1; else a[i][j] = 0;二、vector没有权值的情况 vector<int> v[maxn]; if (i--> j有边) v[...

2020-02-20 09:18:06 302

原创 二维偏序 && 离散化

二维偏序#include <cstdio>#include <cstring>#include <cmath>#define max 32001using namespace std;int c[max], ans[max], x, y, n;int sum(int x) { int s = 0; while (x > ...

2020-01-23 12:51:55 174

原创 树状数组

一、 树状数组介绍黑色数组代表原来的数组(下面用A[i]代替),红色结构代表我们的树状数组(下面用C[i]代替),发现没有,每个位置只有一个方框,令每个位置存的就是子节点的值的和,则有 C[1] = A[1]; C[2] = A[1] + A[2]; C[3] = A[3]; C[4] = A[1] + A[2] + A[3] + A[4]; C[5] = A[5]; C[6...

2020-01-22 18:10:43 116

RSA和AES工具.zip

RSA和AES工具,包括前端js实现和后端java实现

2021-01-26

中华石杉从零开始系列(全).txt

中华石杉从零开始系列,包括从 0 开始带你成为消息中间件实战高手、从 0 开始带你成为MySQL实战优化高手、从 0 开始带你成为JVM实战高手。链接失效即补。

2021-01-23

空空如也

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

TA关注的人

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