Skip to content

一起啊

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

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;

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