Python全栈开发从入门到入土

Python全栈开发从入门到入土

【Python基础从入坑到放弃】

【一】Python基础入门

【一】计算机基础

  • 编程语言的介绍
    • 什么是语言
    • 什么是编程语言
    • 为什么会出现编程语言
    • 什么是编程
    • 为什么要有编程
  • 计算机组成原理
    • 计算机的五大组成部分
  • 操作系统
    • 操作系统的发展史
    • 系统软件与应用软件
    • 计算机系统的三层架构

【二】编程语言与Python介绍

  • 编程语言分类
    • 机器语言
    • 汇编语言
    • 高级语言
  • Python语言介绍
    • 发展史
    • 解释器种类
    • 解释器的安装
  • Python简单使用
    • 运行Python程序的两种方式
    • 注释语法
  • Python代码编写工具Pycharm
    • 介绍与使用

【三】Python语法入门

  • 变量
    • 什么是变量
    • 为什么要有变量
    • 变量的使用
    • 变量的三大特性
  • 常量
    • 什么是常量
    • 为什么要有常量
    • 常量的使用
  • 垃圾回收机制
    • 什么是垃圾回收机制
    • 为什么要有垃圾回收机制
    • GC原理
    • 垃圾回收机制原理分析
  • 基本数据类型
    • 数字类型

【四】基本数据类型与基本运算符

  • 基本数据类型
    • 数字类型
    • 字符串
    • 列表
    • 字典
    • 布尔
    • 元祖
    • 集合
  • 程序与用户交互
    • input
    • print
  • 基本运算符
    • 算术运算符
    • 比较运算符
    • 赋值运算符

【五】流程控制语句

  • 分支结构
    • 什么是分支结构
    • if 语法
  • 循环结构
    • 什么是循环结构
    • while 语法
      • while + break
      • while + tag
      • while + continue
      • while + else
    • for 语法

【六】数据类型的内置方法

  • 数字类型
  • 字符串
  • 列表
  • 元祖
  • 字典
  • 集合
  • 可变类型与不可变类型

【七】关于员工管理系统的设计与实现

【八】文件操作及文本处理

  • 文件操作的基本流程
    • with .. open .. 语法
  • 文件操作的方式
    • r 模式
    • w 模式
    • a 模式
  • 操作文件的方法
  • 控制鼠标指针
  • 文件的修改

【九】函数语法铺垫&函数的参数

  • 函数简介
  • 函数的定义
  • 函数的调用
  • 函数的参数

【十】函数对象与装饰器

  • 名称空间
  • 函数对象
  • 装饰器

【补充】函数之装饰器详解

【补充】语法糖案例调用关系详解

【十一】匿名函数lambda

  • 匿名函数的定义
  • 匿名函数的应用

匿名函数的补充知识

  • map 函数
  • zip 函数
  • max 函数
  • filter 函数

【十二】迭代器

  • 迭代器介绍
  • 可迭代对象
  • 迭代器对象
  • for 循环原理
  • 迭代器的优缺点

【十三】生成器

  • 生成器介绍
    • 生成器与yield
    • yield表达式
  • 生成器详解
    • 什么是生成器
    • 生成器的创建方式
    • 生成器的优点
  • 生成器原理

【十四】Python中的异常捕获处理

  • 什么是异常
  • 异常类型
  • 异常处理
  • 触发异常
  • 自定义异常

【补充】Python异常捕获补充:assert语句

【十五】字符编码

  • 文本编辑器与Python解释器原理
  • 字符编码介绍
    • 什么是字符编码
    • 字符编码的历史
    • 编码与解码
    • utf-8
  • 字符编码应用
  • 字符编码/解码

【十六】Python中的常用模块学习

【补充】

【补充】列表推导式&字典生成式

  • 列表推导式
  • 列表生成式
  • 字典推导式
  • 元祖/集合推导式

【补充】for循环的内部机制

【补充】Python下的三元运算符

Python中常用的68个内置函数

【补充】Python中常用的73个内置函数

Built-in Functions
Aabs()aiter()all()any()anext()ascii()
Bbin()bool()breakpoint()bytearray()bytes()
Ccallable()chr()classmethod()compile()complex()
Ddelattr()dict()dir()divmod()
Eenumerate()eval()exec()
Ffilter()float()format()frozenset()
Ggetattr()globals()
Hhasattr()hash()help()hex()
Iid()input()int()isinstance()issubclass()iter()
Llen()list()locals()
Mmap()max()memoryview()min()
Nnext()
Oobject()oct()open()ord()
Ppow()print()property()
Rrange()repr()reversed()round()
Sset()setattr()slice()sorted()staticmethod()str()sum()super()
Ttuple()type()
Vvars()
Zzip()
___import__()

【补充】Pycharm插件之Statistic(统计代码行数、字数等数据)

【补充】requirements.txt 的生成和安装

【补充】代码规范之PE8规范

【二】阶段性知识总结

【1】阶段性知识总结习题版

【2】阶段性知识总结解释版

【三】基础过渡

【ATM_1.0】ATM_Shopping项目工程

【ATM_2.0】ATM_Shopping演示文档

【四】Python基础进阶之面向对象

【一】面向对象编程

  • 什么是面向过程
  • 什么是面向对象
  • 什么是程序
  • 类与对象
  • 面向对象编程

【二】面向对象之封装

  • 什么是封装
  • 为什么要封装
  • 隐藏属性
  • 开放接口
  • property方法

【三】面向对象之继承与派生

  • 什么是继承
  • 继承与抽象
  • 属性查找顺序
  • 继承的实现原理
    • 菱形问题
    • 继承问题
    • 深度优先与广度优先
    • Mixins机制
  • 派生与方法重用
    • 指名道姓调用
    • super()方法
  • 组合

【四】面向对象之多态与鸭子类型

  • 多态与多态性
    • 什么是多态
    • 什么是多态性
  • Python中的鸭子类型

【五】面向对象之绑定方法与非绑定方法

  • 绑定方法
  • 非绑定方法

【六】面向对象之反射、内置方法

  • 反射
  • 对象的内置方法

【七】面向对象编程之元类

  • 什么是元类
  • 创建元类的过程
  • 自定义元类
  • 属性查找顺序

【八】基于面向对象设计游戏对战

【补充】

【补充】hasattr和getattr判断并调用方法属性

【补充】__str__和__repr__方法

【补充】Python面向对象之元类

【补充】面向对象中的魔法方法

【补充】isinstance()和issubclass()

【五】面向对象知识总结

【1】面向对象知识总结习题版

【2】面向对象知识总结解释版

【六】面向对象过渡

选课系统项目工程

【七】阶段性月考

【1】月考无解释版

【2】月考解释版

【补充】面试题总结


【网络编程】

【一】CS与BS架构

  • 什么是 CS 架构
  • 什么是 BS 架构

【二】操作系统基础与网络通信基础

  • 互联网的本质
  • OSI七层协议
  • TCP/IP五层模型

【三】互联网开发架构

【四】socket层

【五】粘包

【六】粘包的解决办法

【1】解决粘包的基础处理方法

【2】解决粘包的进阶方法

【七】认证客户端的链接合法性

【八】socketserver实现并发

【总结】

【1】基于TCP协议的简单套接字(打电话模型)

【2】基于UDP协议的简单套接字

【3】基于 TCP 协议实现服务端执行代码将结果反馈给客户端

  • 粘包问题详解
  • 粘包问题解决办法

【4】socket套接字使用模版


【并发编程】

【一】引入介绍

  • 为什么要有操作系统
  • 什么是操作系统
  • 操作系统和普通软件的区别
  • 操作系统发展史
    • 真空管和穿孔卡片
    • 晶体管和批处理系统
    • 集成电路芯片和多道程序设计

【二】多进程理论

  • 什么是进程
  • 进程与程序的区别
  • 进程的调度问题
  • 并发与并行
  • 同步/异步/阻塞/非阻塞
  • 进程的创建/终止
  • 进程的层次结构
  • 进程的状态
  • 进程并发

【三】多进程操作

  • multiprocessing模块介绍
  • Process类的介绍
  • 守护进程
  • 进程同步锁
  • 队列
  • 管道
  • 共享数据
  • 信号量
  • 事件
  • 进程池

【四】多线程理论

  • 什么是线程
  • 线程的创建开销
  • 线程和进程的区别
  • 为何要用多线程
  • 经典的线程模型

【五】多线程操作

  • threading模块介绍
  • 开启线程的两种方式
  • 一个进程下开启多个线程
  • 守护进程
  • Python中的GIL锁
  • 同步锁
  • 死锁和递归锁
  • 信号量
  • Event
  • 定时器
  • concurrent.futures模块

【六】协程

  • 协程介绍
  • Greenlet

【七】IO模型

  • IO 模型介绍
  • 阻塞 IO 模型
  • 非阻塞 IO 模型
  • 多路复用 IO 模型
  • 异步 IO 模型
  • IO模型比较
  • selectors模块

【八】异步编程

  • asynico 模块
  • 事件循环
  • 协程/异步编程

【总结】

【1】知识点小结(进程相关)

  • 并行与并发

    • 什么是并发

    • 什么是并行

    • 并行与并发之间的关系

  • 什么是多道技术

  • 进程

    • 程序与进程的区别
    • 什么是进程
    • 进程之间的调度问题
    • 进程运行的三状态图
  • 同步/异步/阻塞/非阻塞

    • 同步和异步
    • 阻塞和非阻塞
    • 异步非阻塞
  • 开启进程的两种方式

  • join方法

  • 进程之间数据相互隔离

【2】知识点小结(进程进阶)

  • 进程对象及部分方法
  • 僵尸进程与孤儿进程
  • 守护进程
  • 互斥锁
  • 进程间通信
  • 生产者与消费者模型

【3】知识点小结(线程相关)

  • 什么是线程
  • 为何要有线程
  • 开启线程的两种方式
  • 多线程实现TCP服务端并发效果
  • 线程对象的join方法
  • 同一个进程下的多线程之间数据共享
  • 线程对象属性及其他方法
  • 守护线程
  • 线程的互斥锁
  • GIL全局解释器锁
  • GIL锁与普通锁的区别
  • 同一个进程下的多线程无法利用多核优势

【4】知识点小结(线程进阶)

  • 什么是死锁与递归锁
  • 信号量
  • Event事件
  • 线程 queue
  • 线程池与进程池
  • 协程

【5】知识点小结(协程进阶)

  • IO 模型简介
  • IO 多路复用
  • 异步 IO

【网络 && 并发】

【1】网络并发总复习

【2】网络并发总复习解释版

【3】并发网络周测题

【4】并发网络周测题解释版

【5】网络并发每日习题

【6】网络并发每日习题解释版

【补充】多进程和多线程以及协程的创建模板


【MySQL数据库从入门到懵逼】

【一】MySQL初识

  • 存储数据的演变过程
  • SQL语句的由来
  • 库/表/记录/表头/表单
  • MySQL安装
  • 初识SQL语句

【二】MySQL基础

  • 存储引擎
  • 创建表语法
  • 基本数据类型
  • 字段类型
  • 严格模式
  • 约束条件

【三】MySQL之约束条件引言

  • 约束条件
  • 外键
  • 修改表语法
  • 复制表语法

【四】MySQL之约束条件

  • 关键字的执行顺序

  • 筛选条件之where

  • 约束条件之 group by

  • 约束条件之 having

  • 约束条件之 distinct

  • 约束条件之 order by

  • 约束条件之 limit

  • 正则语法

  • 多表查询

  • 子查询

【五】Navicat引入

  • 多表查询案例
  • 关键字 exist
  • Navicat使用
  • pymysql模块

【六】MySQL进阶知识

  • pymysql 进阶
  • 视图
  • 触发器
  • 事务
  • 存储过程
  • 函数
  • 流程控制
  • 索引

【高级】MySQL主从复制

  • MySQL主从复制原理
  • MySQL主从复制搭建步骤

MySQL常用知识点总结

数据库的范式设计

事务的特性和隔离级别


【前端从入门到精通】

Web前端参考手册

【前端引入】

【HTML】

【1】web服务端本质

  • 软件开发架构
  • HTTP协议
  • HTML简介
  • HTML注释语法
  • HTML文档结构
  • HTML标签分类
  • head常用标签
  • body常用标签
  • 块级标签/行内标签

【2】HTML补充

  • 表格标签
  • form表单

【CSS】

【1】CSS

  • CSS简介
  • 注释语法
  • 语法结构
  • 引入方式
  • 基本选择器
  • 组合选择器
  • 属性选择器

【2】CSS进阶

  • 分组与嵌套
  • 伪类选择器
  • 伪元素选择器
  • 选择器优先级
  • CSS属性
  • 盒子模型
  • 浮动

【3】CSS终章

  • 浮动带来的影响及解决办法
  • 溢出属性
  • 定位
  • 浮动和定位是否脱离文档流
  • z-index模态框
  • 透明度opacity

【4】CSS案例

【JavaScript】

【1】JavaScript引入

  • 什么是JavaScript
  • 注释语法
  • 引入方式
  • 语法结构
  • 变量
  • 常量

【2】JavaScript初识

  • 变量命名规范
  • 数据类型
  • 布尔类型
  • null 和 undefined
  • 对象
  • 运算符
  • 流程控制
  • 函数

【3】JavaScript进阶

  • 自定义对象
  • 日期对象Date
  • JSON对象
  • 正则对象RegExp
  • 正则的BUG
  • math对象

【4】JavaScript之DOM/BOM

  • 什么是DOM/BOM
  • Window对象
  • Window子对象
  • 弹出框
  • 定时器
  • 查找标签
  • 节点操作
  • 获取值操作
  • 属性操作
  • 事件

【5】JavaScript之JS事件案例

  • 开关灯
  • input框获取/失去焦点
  • 实时展示当前时间
  • 省市联动

【阶段性复习】

  • HTML
  • CSS
  • JavaScript

【jQuery】

【1】jQuery之引入

  • jQuery简介
  • 引入方法
  • 基本语法
  • 与原生JS比较
  • 基本选择器
  • 组合选择器
  • 分组与嵌套
  • 基本筛选器
  • 属性筛选器
  • 表单筛选器

【2】jQuery之进阶

  • 操作标签

  • 操作CSS

  • 链式操作

  • 位置操作

  • 尺寸操作

  • 文本操作

  • 属性操作

  • 针对checked的特殊方法(Prop方法)

  • 文档处理

【3】jQuery之jQuery事件

  • 绑定事件的两种方式
  • 克隆事件
  • 自定义模态框
  • 左侧菜单
  • 返回顶部
  • 自定义登录校验
  • input框实时监控
  • hover事件
  • 键盘按键监控事件

【4】jQuery之jQuery补充

  • 组织标签后续执行
  • 组织事件冒泡
  • 事件委托
  • 页面加载
  • jQuery中的动画效果

【Bootstrap】

【1】Bootstrap框架简介

  • bootstrap简介
  • 引入方法
  • 布局容器
  • 栅格系统
  • 栅格参数
  • 列偏移
  • 排版
  • 表单标签
  • 按钮组
  • 图片
  • 图标

【2】bootstrap参考网站总结

  • 官方文档
  • 图标样式
  • 弹框样式

【补充】

【补充】 HTTP协议

【补充】 URL编码

  • URL解码/编码简介
  • URL基本组成
  • Python实现URL编码/解码

【补充】动静态网页

  • 静态网页
  • 动态网页
  • 动态网页制作

【补充】纯手撸Web框架

  • 基于socket简单版本
  • 借助 wsgiref 模块
  • 分层架构

【补充】初识模版语法

  • jinjia2模块

【Django框架基础】

【一】Django框架之初识

【二】Django框架之静态文件配置说明

【三】Django框架之数据操作(ORM)初识

【四】Django框架之ORM创建表关系

【五】Django框架之请求生命周期流程图

【六】Django框架之路由层

【七】Django框架之视图层

【八】Django框架之模板层

【九】Django框架之模型层

【十】Ajax之引入

【十一】Ajax之基本语法

【十二】Django框架之forms组件

【十三】Django框架之Cookie和Session

【十四】Django框架之CBV添加装饰器的三种方式

【十五】Django框架之中间件

【十六】Django框架之csrf跨站请求

【十七】Django框架之中间件思想简析

【十八】Django框架之auth模块

【补充】

【补充】Django中的缓存与内置信号

【补充】Django中的celery组件

【补充】Django中自带的序列化组件

【补充】Django中批量插入多条数据

【补充】Django中的时区问题

【补充】Django中的路由冲突问题

【补充】Django中路由分发的本质

【补充】Django中多个路由公用一个是视图函数

【补充】Django中制作inclusion_tag标签

【补充】Django之前端页面多重模态框

【补充】Django之IFrame中的跨域问题

【补充】Django之前端渲染文本属性的标签样式

【补充】分页器推导

【补充】自定义分页器模版

【补充】个人站点使用自定义首页样式

【补充】根据年月对文章进行分组

【补充】XSS攻击

【补充】图片防盗链

【补充】内置方法之divmod

【补充】importlib模块

【补充】富文本编辑器WangEditor

【补充】富文本编辑器 KindEditor


【BBS项目_1.0】

【BBS项目Gitee存放地址】

【一】项目开发流程简介

【二】表设计

【三】注册功能实现

【四】登录功能实现

【五】修改密码和注销登录功能实现

【六】Admin管理后台搭建

【七】个人站点搭建

【八】文章详情页搭建

【九】添加文章功能实现

【补充】

【一】动态加载用户头像

【二】Pillow模块生成图形验证码

【三】根据年月对文章进行分组

【四】使用日期(Trunc模块等)分组引起的时间戳错问题

【五】如何加载自定义的样式文件

【六】路由冲突问题

【七】图片防盗链

【八】路由分发本质简解

【九】多路由共用同一个视图函数

【十】inclusion_tag标签制作

【十一】前端渲染文本属性的标签样式

【十二】XSS攻击简解

【十三】富文本编辑器 KindEditor 的介绍

【BBS_1.0项目总览】

【BBS项目_2.0】

[【BBS_2.0项目总览】](https://www.cnblogs.com/dream-ze/p/17578265.html)


【过渡基础回顾】

【1.0】基础串联

【2.0】基础串联之提交数据问题

【3.0】基础串联之魔法方法

【4.0】基础串联之CookieSessionToken

【5.0】基础串联之pymysql


【Django框架高级之DRF】

【一】Web应用模式/API接口测试/Postman

【二】Restful规范

【【三】序列化/反序列化-DRF介绍-CBV源码分析-APIView源码分析

【四】Request类源码分析

【五】序列化组件相关

【六】序列化高级用法-定制/保存/修改/校验/源码分析

【七】请求与响应分析

【八】视图类/视图集相关

【九】路由相关-注册/映射/转换器

【十】登录/认证/权限/频率组件-源码分析

【十一】过滤/排序/分页

【十二】异常处理

【十三】接口文档

【十四】JWT认证

【十五】权限控制

【十六】大总结

【高级】Django实现读写分离

【补充】Django中的信号


【前端VUE框架】

【一】前端发展史

【二】Vue之介绍及引入

【三】Vue之基础语法

【四】Vue之指令系统

【五】Vue之计算属性和监听属性

【六】Vue之生命周期钩子函数

【七】Vue之组件

【八】Vue之ref属性

【九】Vue之项目规范

【十】Vue之插件

【十一】Vue之Vuex的使用

【十二】Vue之router的使用

【十三】Vue3之介绍及引入

【十四】Vue3之函数

【十五】Vue3之Hook实现打点

【十六】Vue大回顾

【补充】箭头函数

【补充】数组的过滤

【补充】vm对象简解

【补充】标签属性补充

【补充】前后端交互的三种方式

【补充】后端跨域的处理

【补充】代码检查导致的代码高亮问题解决

【补充】localstorage和sessionstorage,和cookie

【补充】第三方UI库参考

【补充】uni-app和开源前端项目参考

【Vue笔记总览】


【路飞项目】

【一】路飞项目Gitee链接

【1】Gitee之路飞项目前端

【2】Gitee之路飞项目后端

【二】企业项目相关知识介绍

企业级项目介绍

【三】路飞项目前期准备

【1】前期需求分析

【2】虚拟环境介绍与搭建

【四】路飞项目搭建准备

【1】后端创建项目

【2】搭建数据库相关

【3】封装全局logger

【4】封装全局异常捕获

【5】开启静态文件访问

【6】前端项目创建

【五】首页/banner

【1】后端搭建首页接口

【2】前后端交互引发跨域问题

【3】前端首页搭建

【六】项目存储Gitee

项目上传Gitee

【七】短信相关引入

短信相关

【八】登录/注册

【1】后端登录/注册接口

【2】前端登录/注册搭建

【九】Redis引入

【1】Redis介绍

【2】Redis使用

【3】路飞项目中使用Redis缓存

【十】celery引入

【1】celery框架介绍

【2】在项目中使用celery

【十一】课程相关

【1】前端搭建课程页面

【2】前后端搜索功能

【十二】支付相关

【1】支付相关功能介绍

【2】在项目中引用支付功能

【十三】上线部署

路飞项目上线部署

【拓展相关参考知识】

【补充】pip换源

【补充】软件开发模式对比(瀑布、迭代、螺旋、敏捷)

【补充】字符与字节的区别

【补充】Python中实现单例模式的六种常见方法

【补充】Gitee的介绍与使用

【补充】Docker安装部署Gitlab

【补充】为什么Windows不支持epoll

【补充】USE_TZ和更新数据

【补充】Loguru:更为优雅、简洁的Python 日志管理模块

【补充】导出项目依赖

【补充】文件存储方案

【补充】Minio存储桶封包指南


【爬虫从入门到入狱】

【一】初识爬虫

【二】爬虫核心之requests

【三】爬虫解析之BeautifulSoup

【四】爬虫解析之xpath

【五】爬虫自动化之selenium

【六】爬虫框架之scrapy框架初识

【七】爬虫框架之scrapy框架进阶

【八】爬虫案例

【1】爬虫案例小结

【2】梨视频下载案例

【补充】HTTP和HTTPS的区别和NGINX配置SSL证书

【补充】反爬措施

【拓展】代理池搭建


【Linux相关】

【一】Linux引入

【二】Linux初识

【三】Linux之网络

【四】Linux之Shell

【五】Linux之文件管理

【六】Linux之用户管理

【七】Linux之基本权限

【八】Linux之特殊权限

【九】Linux之软件管理

【十】Linux之系统服务

【十一】Linux之进程管理

【十二】Linux之计划任务

【VIM编辑功能总结】

【补充】修改Linux登录时提示信息


【Flask从入门到放弃】

【一】Flask框架之初识

  • Flask框架引入
  • Flask框架简单使用
  • 简单的Flask框架登陆案例
  • wsgiref
  • werkzeug

【二】Flask框架之配置文件

  • Flask框架的配置文件配置方式

【三】Flask框架之路由系统

  • 路由系统介绍
  • 转换器

【四】Flask框架之CBV

  • CBV使用
  • CBV源码简析

【五】Flask框架之请求与响应

  • Flask请求对象
  • Flask响应对象
  • 模板
  • Session

【六】Flask框架之闪现

  • 闪现的介绍
    • 闪现(Flash)是一种在Web应用程序中临时存储消息或数据的机制。
  • 闪现的使用

【七】Flask框架之请求扩展

  • 请求扩展介绍
    • 在 Flask 框架中,可以通过请求扩展(Request Extension)来实现类似于 Django 中间件的功能。
  • 请求扩展详解

【八】Flask框架之g对象和蓝图

  • g对象
    • g对象是一种上下文全局对象,它可以在当前请求中存储变量,并在整个请求处理过程中保持一致
  • 蓝图
    • flask都写在一个文件中,项目这样肯定不行,分目录,分包,使用蓝图划分目录

【九】Flask框架之flask-session

【十】Flask框架之数据库连接池

  • 拓展
    • Django中使用数据库连接池

【十一】Flask框架之信号

  • Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为

  • 拓展

    • Django中的信号

【十二】Flask框架之flask-script

  • 快速启动Flask项目

【十三】sqlalchemy介绍和快速使用

  • 执行SQL语句查询数据

【十四】sqlalchemy 集成到Flask框架

【补充】装饰类的装饰器类作为装饰器


【Docker从秃头到光头】

【一】Docker介绍

  • 什么是Docker
  • 容器化和虚拟化的比较
  • docker概念

【二】Docker安装与使用

  • 卸载docker
  • 更新yum版本
  • docker依赖包
  • 更新yum源为阿里源
  • 安装docker
  • 查看docker版本
  • 启动docker
  • 拉取镜像
  • 查看本地镜像
  • 运行容器
  • 查看容器
  • 进入容器
  • 在容器中安装应用
  • Docker国内源配置
  • 查看Linux系统版本

【三】Docker镜像操作

  • 查找镜像
  • 拉取镜像
  • 查看本地镜像
  • 删除镜像
  • 删除所有镜像

【四】Docker容器操作

  • 运行容器
  • 查看正在运行的容器
  • 查看所有容器
  • 查看最后一次启动的容器
  • 启动/停止容器
  • 停止所有在运行的容器
  • run操作
    • 目录映射
    • 端口映射
  • 文件拷贝
  • 查看容器IP
  • 无状态服务

【五】Docker部署MySQL

【六】Docker部署Redis

【七】Docker部署nginx

【八】Docker迁移备份

  • 镜像的来源
  • 容器保存为镜像
  • 镜像备份和恢复

【九】Docker之Dockerfile

  • 部署的镜像来源
  • 什么是DockerFile
  • DockerFile常用命令
  • 构建镜像演示

【十】Docker之私有仓库

  • 创建私有仓库
  • 上传镜像到官方仓库
  • 镜像分层
  • 私有仓库搭建

【十一】Docker之docker-compose

  • Docker Compose介绍
  • 多机容器编排
  • Docker Compose管理方式
  • Docker Compose安装
  • Docker Compose常用命令

【补充】一些Linux名词解释

  • Nginx

  • Paramiko

  • Ansible

  • SaltStack

  • Zabbix

  • Prometheus

  • Grafana

  • Jenkins

  • GitLab

【补充】虚拟化介绍

  • 什么是虚拟化
  • 计算机虚拟化技术
  • 虚拟化的软件
  • 虚拟化管理
  • 虚拟机管理

【补充】Python的自动化工具Ansible

【模块补充】Paramiko执行Linux命令)


【Redis数据库】

【一】Redis介绍与安装

  • 什么是Redis
  • 非关系型数据库和关系型数据库
  • Redis的特点
  • Redis的安装
  • Redis的连接与停止

【二】Redis使用

  • Redis普通连接与连接池

  • Redis之字符串操作

  • Redis之hash类型操作

  • Redis之列表操作

  • Redis之其他操作

  • Redis之管道

    • 事务的四大特性
    • Redis中的事务
  • Django中使用Redis

  • 【Python实现单例模式】

  • 【数据库连接池详解】

【三】Redis部署

  • Redis是什么
  • Redis特性(8个)
  • Docker部署Redis
  • Redis的三种启动方式

【四】Redis使用场景和通用命令

  • 使用场景
    • 缓存系统
    • 计数器
    • 消息队列
    • 排行榜
    • 社交网络
    • 实时系统
  • 通用命令

【五】Redis五大数据类型

  • 图解Redis数据结构

  • Redis单线程架构

  • 五大数据类型

    • 字符串类型
    • 哈希类型
    • 列表类型
    • 集合类型
    • 有序集合类型
  • 列表操作

  • Redis数据结构之跳跃表

【六】Redis高级用法

  • 慢查询
  • pipline和事务
  • 发布订阅
  • Bitmap位图
  • HyperLog
  • GEO

【七】Redis持久化

  • Redis持久化
  • RDB
  • AOF
  • RDB和AOF的比较
  • Redis混合持久化

【八】Redis主从复制/哨兵/集群

  • 主从复制
  • 哨兵
  • 集群

【九】Redis之缓存优化

  • 缓存更新策略
  • 缓存粒度控制
  • 缓存穿透
    • 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求
    • 如发起为id为“-1”的数据或id为特别大不存在的数据。
      • 这时的用户很可能是攻击者,攻击会导致数据库压力过大。
  • 缓存击穿
    • 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力
  • 缓存雪崩
    • 缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。
    • 和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

【分布式锁】


【RabbitMQ总结】

【一】消息队列引入

  • 什么是消息队列
  • 消息队列解决的问题
  • 常见的消息队列比较

【二】RabbitMQ安装

  • 什么是 RabbitMQ

  • 服务器原生安装 RabbitMQ

  • 客户端安装 RabbitMQ

  • Windows 安装 RabbitMQ

  • RabbitMQ 设置用户名和密码

  • RabbitMQ 界面说明

【三】RabbitMQ使用

  • 基于 queue 实现生产者和消费者模型

  • RabbitMQ 基本使用

【四】RabbitMQ使用之消息安全

  • 消息安全之 ACK

    • ACK是一种确认机制,用于确保消息在消费者接收后被正确处理。
      • 当消费者接收到消息并成功处理时,它发送一个ACK(Acknowledgement)给生产者,表示消息已经处理完毕。
      • 只有在收到ACK之后,生产者才会从队列中删除该消息。
  • 消息安全之durable持久化

    • 持久化是指在RabbitMQ的消息中间件中,将消息存储到磁盘上以确保消息的安全性和可靠性。

    • 即使在RabbitMQ服务器重启或宕机后,消息也能够得到保留,以便再次进行消费

【五】RabbitMQ使用之闲置消费

  • 传统情况下,如果有多个消费者,消息会按顺序依次发送给每个消费者。
    • 但是,如果第一个消费者处理消息的时间很长,那么其他消费者就会等待,无法继续进行任务处理。
  • 为了解决这个问题,可以引入闲置消费机制。
    • 闲置消费允许消费者在其他消费者正在处理消息时获得闲置消息,从而保证消息的高效处理。

【六】RabbitMQ使用之发布订阅

  • 发布订阅

  • 发布订阅高级之Routing(按关键字匹配)

    • direct路由模式
  • 发布订阅高级之Topic(按关键字模糊匹配)

【RabbitMQ六种队列模式与应用场景】

  • 简单模式
  • 工作队列模式
  • 发布订阅模式
  • 路由模式
  • 主题模式
  • RPC同步通信

【微服务架构】

【连接Linux远程开发】

posted @ 2023-08-29 16:07  Chimengmeng  阅读(2099)  评论(0编辑  收藏  举报