golang
Golang 中常用的并发模型
- 通过channel通知实现并发控制
- 通过sync包中的WaitGroup实现并发控制
- Context上下文,实现并发控制
mysql
事务的四个特性
原子性、一致性、隔离性、持久性
left join和right join的区别
left会保存全部左边的,right会保存全部右边的
redis
redis的五个数据类型
string,list,hash,set,sort set
linux
grep
grep [option] pattern file
- -A<显示行数>:除了显示匹配 pattern 的那一行外,显示该行之后的内容
- -B<显示行数>:除了显示匹配 pattern 的那一行外,显示该行之前的内容
- -C<显示行数>:除了显示匹配 pattern 的那一行外,显示该行前、后的内容
- -c:统计匹配的行数
- -e:同时匹配多个pattern
- -i:忽略字符的大小写
- -n:显示匹配的行号
- -o:只显示匹配的字符串
- -v:显示没有匹配pattern的那一行,相当于反向匹配
- -w:匹配整个单词
sed
- 命令功能
sed 主要用于自动编辑一个或多个文件,简化对文件的反复操作。 - 命令格式
sed [options] '[地址定界] command' file
- 命令参数 options
- -n:只打印匹配到的行
- -e:多次匹配,相当于对每行处理时,顺序执行多个sed命令
- -i:直接将处理结果写入文件
- 地址定界
- 不给地址:默认对全文进行处理
- 单地址:/pattern/,被pattern匹配到的每一行
- 地址范围:#, #
- 编辑命令 command
- d:删除模式空间匹配到的行
- p:打印模式空间中的内容
- s/old/new/g:将old替换为new,g表示行内全局替换
awk
- 命令功能
awk 是以文件的一行为处理单位的,awk每接收文件的一行,就执行相应的命令。 - 命令格式
awk ‘{pattern + action}’ - 分隔符
可以使用 -F 参数来指定分隔符 - 内置变量
- $0:表示当前整行,$1表示第一个字段,$2表示第二个字段,$n 表示第n个字段;
- NR:表示当前已读的行数;
- NF:表示当前行被分割的列数,NF表示最后一个字段,NF-1 表示倒数第二个字段;
- FILENAME:表示当前文件的名称
comm
- 命令功能
comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整-输出,以便执行交集、求差、以及差集操作
- 交集:打印出两个文件所共有的行。
- 求差:打印出指定文件所包含的且不相同的行。
- 差集:打印出包含在一个文件中,但不包含在其他指定文件中的行
- 语法
comm [选项]... 文件1 文件2
- 选项
-1 不输出文件1 特有的行
-2 不输出文件2 特有的行
-3 不输出两个文件共有的行
网络
tcp是如何保持可靠性的
- 校验和
- 序列号和确认应答
- 超时重传机制
- 连接管理
- 流量控制
- 拥塞控制
http协议常用状态码
- 301 永久重定向
- 302 临时重定向
- 400 客户端请求中的语法错误
- 401 未登录
- 403 拒绝访问
- 404 未找到
- 500 服务端执行请求时发生错误
- 502 服务器网关错误
- 503 服务器处于负载或停机维护
算法
常用排序算法的时间复杂度和空间复杂度
算法 | 时间复杂度 | 空间复杂度 |
---|---|---|
冒泡排序 | O(n^2) | O(1) |
选择排序 | O(n^2) | O(1) |
插入排序 | O(n^2) | O(1) |
快速排序 | O(nlogn) | O(logn) |
归并排序 | O(nlogn) | O(n) |
堆排序 | O(nlogn) | O(1) |
计数排序 | O(n+k) | O(k) |
基数排序 | O(nk) | O(n+k) |
桶排序 | O(n+k) | O(n+k) |
k8s
控制器模式
基础知识
认证
RBAC
模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。
OAuth
简单地说,OAuth的作用是:
- 应用程序请求用户授权
- 用户授权应用程序并提供证据
- 应用程序向服务器提供获得令牌的授权证明
- 令牌仅限于访问用户为特定应用程序授权的内容
jwt
JWT(Json Web Token)是一种可以跨域的认证方案