Appearance
一起啊
Mysql
- 交集、并集、差集
- NTERSECT、UNION、EXCEPT
- 连表查询
- 左右连接是在笛卡尔积之上的筛选;
- 不用左右连接的ON也可以table1,table2 where的方式连表查询;
- FULL JOIN TALBE2是把两个表匹配都查出来;
- DDL
- alter字段有:修改字段名RENAME、修改字段类型MODIFY、添加、删除列ADD、DROP,后面都加上COLUMN,前面是表名;
- ADD也可以用来修改INDEX,ADD INDEX NAME(FIELD)
- INDEX的增、删、改命令,DROP和CREATE是开头的命令,ADD配合ALTER使用;
- 例如
- create index index_name on table_name(email);
- drop index index_name on fast;
- alter table table_name index index_name(name)
- 查询
- REGEXP:.是任意字字符、开头结尾^$、[]范围、或A|B;
- LIKE "_"匹配一个字符,“__”匹配两个字符
- BETWEEN 1 AND 3;
Redis
- 五种基本类型
- 字符串
- 列表
- 集合
- 适合去重的功能
- 有序集合
- 适合延时队列,或按分数排名的功能
- 哈希
- 五种混合类型
- 流streams
- 持久化、可重复消费
- GIS
- HyperLogLog
- 粗略统计,UV,PV等
- 位图Bitmap
- 继承自string,可以用string命令
- 位域Bitfield
- 流streams
nginx
- 全局块
- 指定运行的用户;
- worker进程的数量 worker_processes auto;
- 日式格式 error_log logs/error.log notice;
- event块
- 客户端和服务端之间网络连接的一些配置,例如
- worker_connections 1024;
- 网络IO模型;
- http块(主要修改的地方)
- 虚拟主机(也叫server块)
- 可以包含多个,每个域名匹配一个server块;
- 也可以include servers/*来包含多个;
- 用location来配置域名对应的路径,"/"是匹配根目录;
- 如果uri包含正则表达式,则必须要有“~或者~*”标识
- 四种通配符的匹配
- = 是严格匹配,具有最高的优先级,其次是正则表达式匹配;
- ~ 是包含正则表达式区分大小写;
- ~* 是包含正则表达式不区分大小写;
- ^~ 不含正则表达式,找到第一个请求字符串匹配度最高的location;
- 例如:location ~ /edu/ {}
- 每个location设置一个root /data/,也可以设置一个全局默认的;
- 静态资源分为html和图片、css、js等资源,配置这些的过期时间expires 3d;
- 反向代理
- proxy_pass在location中使用;
- upstream servername {server ip:port;}
- upstream写在http块里面;
- 负载均衡
- 4种分配策略
- 默认是轮询
- 权重weight越高,被分配的几率越高,一般给性能好的服务权重配高,每个后端服务地址后面配置一个weight=n;
- 按请求的ip哈希,每个客户端固定一个后端服务器,和后端服务地址同一层,只需配置一个ip_hash;
- 按后端服务的响应时间来分配,响应快的优先,只需配置一个fair;
- 4种分配策略
- 虚拟主机(也叫server块)
Docker
- 常用Dockerfile指令
- FROM
- COPY
- WORKDIR
- CMD
- EXPOSE
K8S
- ⼀般都是使⽤Docker来管理容器化的应⽤,但是Docker只是⼀个单机的容器管理⼯具,
- 当我们的应⽤程序需要运⾏在多个节点上的时候,就需要使⽤⼀些其他的⼯具来管理这些节点,⽐如Docker Swarm、Kubernetes容器编排工具;
- Swarm和K8s之间的区别:自动部署,扩展,负载平衡以及日志和监视没有K8S做的好;
- k3s是⼀个轻量级的K8s发⾏版,它是Rancher Labs推出的⼀个开源项⽬,旨在简化K8s的安装和维护;
- 相⽐于VirtualBox或者VMware这样的虚拟机管理⼯具,Multipass更加轻量快速,官⽅⽹址:https://Multipass.run/
- 在线实验环境:Play-With-K8s
- 运行流程
- ingress
- service
- pod
- Deployment用来定义pod的数量
- StatefulSet用来管理有状态应用的pod