Redis从入门到高可用,分布式实践

课程简介:

一门内容非常丰富的Redis课程,基于原Redis课程进行升级。由阿里云Redis开发规范原作者为你深入讲解每个技术点。课程包含Redis基础,使用经验介绍、Java,Python客户端示范、Redis使用规范,由浅入深讲解并伴有企业中Redis开发的相关项目以及大规模Redis的实战经验,是开发和运维人员系统学习Redis的必备内容
[code]官方课程链接:https://coding.imooc.com/class/151.html[/code]

课程目录:

第1章 Redis初识
带领听众进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,可以让听众对Redis有一个全面的认识。
1-1 导学
1-2 Redis初识
1-3 谁在使用Redis
1-4 redis特性目录
1-5 特性1-速度快
1-6 特性2-持久化
1-7 特性3-数据结构
1-8 特性4-多语言客户端
1-9 特性5-功能丰富
1-10 特性6-简单
1-11 特性7-复制
1-12 特性8-高可用分布式
1-13 redis典型使用场景
1-14 redis三种启动方式介绍
1-15 redis常用配置
1-16 redis安装启动演示

第2章 API的理解和使用
全面介绍了Redis提供的5种数据结构字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)的数据模型、常用命令、典型应用场景。同时本章还会对Redis的单线程处理机制、键值管理做一个全面介绍,通过对这些原理的理解,听众可以在合适的应用场景选择合适的数据结构。 …
2-1 -课程目录
2-2 -通用命令
2-3 数据结构和内部编码
2-4 单线程
2-5 字符串
2-6 hash (1)
2-7 hash (2)
2-8 list(1)
2-9 list(2)
2-10 set
2-11 zset

第3章 Redis客户端的使用
本章重点关注Redis客户端的开发,介绍了详细讲解了Java客户端Jedis,简单介绍下Python和Go语言的Redis客户端的选择和使用。
3-1 课程目录
3-2 Java客户端:Jedis
3-3 Python客户端:redis-py
3-4 Go客户端:redigo简介
3-5 Jedis配置优化(上)
3-6 Jedis配置优化(下)

第4章 瑞士军刀Redis其他功能
除了5种数据结构外,Redis还提供了诸如慢查询、Pipeline、Bitmap、HyperLogLog、发布订阅、GEO等附加功能,在这些功能的帮助下,Redis的应用场景更加丰富。
4-1 课程目录
4-2 慢查询
4-3 pipeline
4-4 发布订阅
4-5 bitmap
4-6 hyperloglog
4-7 geo

第5章 Redis持久化的取舍和选择
Redis的持久化功能有效避免因进程退出造成的数据丢失问题,本章将介绍介绍RDB和AOF两种持久化配置和运行流程,以及选择策略
5-1 目录
5-2 持久化的作用
5-3 RDB(1)
5-4 RDB(2)
5-5 RDB(3)
5-6 AOF(1)
5-7 AOF(2)
5-8 AOF实验
5-9 RDB和AOF抉择

第6章 常见的持久化开发运维问题
本章探讨了常见的持久化问题进行定位和优化,最后结合Redis常见的单机多实例部署场景进行优化
6-1 常见问题目录
6-2 fork
6-3 子进程开销和优化
6-4 AOF阻塞

第7章 Redis复制的原理与优化
复制是实现高可用的基石,但复制同样是运维的痛点,本部分详细分析复制的原理,讲解运维过程中可能遇到的问题。
7-1 目录
7-2 什么是主从复制
7-3 主从复制配置-介绍
7-4 主从复制配置-操作
7-5 runid和复制偏移量
7-6 全量复制
7-7 全量复制开销 + 部分复制
7-8 故障处理
7-9 主从复制常见问题

第8章 Redis Sentinel
本章将一步步解析Redis Sentinel的相关概念、安装部署、配置、客户端路由、原理解析,最后分析了Redis Sentinel运维中的一些问题。
8-1 sentinel-目录
8-2 主从复制高可用?
8-3 redis sentinel架构
8-4 redis sentinel安装与配置
8-5 redis sentinel安装演示-1
8-6 redis sentinel安装演示-2
8-7 java客户端
8-8 python客户端
8-9 实现原理-1-故障转移演练
8-10 实现原理-2.故障转移演练(客户端)
8-11 实现原理-3.故障演练(日志分析)
8-12 三个定时任务
8-13 主观下线和客观下线
8-14 领导者选举
8-15 故障转移
8-16 常见开发运维问题-目录
8-17 节点运维
8-18 高可用读写分离
8-19 本章总结

第9章 初识Redis Cluster
Redis Cluster是Redis 3提供的分布式解决方案,有效解决了Redis分布式方面的需求,同时它也是学习分布式存储的绝佳案例。本章将针对Redis Cluster的数据分布,搭建集群进行分析说明。
9-1 本章目录
9-2 呼唤集群
9-3 数据分布概论
9-4 节点取余分区
9-5 一致性哈希分区
9-6 虚拟槽哈希分布
9-7 基本架构
9-8 原生安装
9-9 原生安装-1.准备节点
9-10 原生安装-2.节点握手
9-11 原生安装-3.分配槽
9-12 原生安装-4.分配主从
9-13 ruby环境准备-说明
9-14 ruby环境准备-操作
9-15 redis-trib构建集群
9-16 原生命令和redis-trib.rb对比

第10章 深入Redis Cluster
本章将针对Redis Cluster的集群伸缩,请求路由,故障转移等方面进行分析说明。
10-1 集群伸缩目录
10-2 集群伸缩原理
10-3 扩展集群-1.加入节点
10-4 扩展集群-2.加入集群
10-5 扩展集群-3.迁移槽和数据
10-6 集群扩容演示-1
10-7 集群扩容演示-2
10-8 集群缩容-说明
10-9 集群缩容-操作
10-10 客户端路由-目录
10-11 moved异常说明和操作
10-12 ask重定向
10-13 smart客户端实现原理
10-14 JedisCluster执行源码分析
10-15 smart客户端JedisCluster-目录
10-16 JedisCluster基本使用
10-17 整合spring-1
10-18 整合spring-2
10-19 多节点操作命令
10-20 批量操作优化
10-21 故障转移-目录
10-22 故障发现
10-23 故障恢复
10-24 故障模拟
10-25 Redis Cluster常见开发运维问题-目录
10-26 集群完整性
10-27 带宽消耗
10-28 PubSub广播
10-29 集群倾斜-目录
10-30 数据倾斜
10-31 请求倾斜
10-32 读写分离
10-33 数据迁移
10-34 集群vs单机
10-35 本章总结

第11章 缓存设计与优化
讲解将缓存加入应用架构后带来的一些问题,这些问题常常会成为应用的致命点。
11-1 目录
11-2 缓存的受益和成本
11-3 缓存的更新策略
11-4 缓存粒度问题
11-5 缓存穿透问题
11-6 缓存雪崩优化
11-7 无底洞问题
11-8 热点key的重建优化
11-9 本章总结

第12章 Redis云平台CacheCloud
本章结合前面的知识介绍redis规模化后使用云平台如何进行机器部署、应用接入、用户相关功能维护等问题
12-1 _目录
12-2 _Redis规模化困扰
12-3 _快速构建
12-4 机器部署
12-5 应用接入
12-6 用户功能
12-7 运维功能

第13章 课程总结
13-1 _课程总结

课程截图:

微信小游戏入门与实战 引爆朋友圈

课程简介:

微信小游戏在2018年风卷残云般迅速占领朋友圈,同时以自己的独特的方式切分了手机游戏市场这块大蛋糕。本课程从0开始,讲述微信小程序的整个开发过程,所讲解内容包含小程序核心API、工具链等小游戏开发核心技术。掌握小游戏开发,展示你的创意,与10亿微信用户分享快乐。
[code]官方课程链接:https://coding.imooc.com/class/183.html[/code]

课程目录:

第1章 准备工作(需要ES5,ES6基础)
学员作品演示:https://pan.baidu.com/s/1gEMWzujg72soj0cEUOtJ2A 密码:uy2n,本章首先介绍课程目标,学习收获等,然后通过与APP、小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目…
1-1 课前必读(不看会错过一个亿)
1-2 课程导学
1-3 小游戏官方开发工具快速体验
1-4 小游戏开发测试环境搭建和工具链使用
1-5 【拓展内容】nodejs&babel安装与配置(windows&mac&linux)-1
1-6 【拓展内容】nodejs&babel安装与配置(windows&mac&linux)-2

第2章 微信小游戏开发原理与JS面向对象初步填坑
本章会带大家快速创建第一个微信小游戏项目,并跑起来,让大家快速的体验和熟悉小游戏开发和运行的整体流程,之后会对微信小游戏开发原理进行剖析,让大家从整体上把握小游戏开发的思路和步骤,最后带大家一起对JS面向对象进行初步填坑。…
2-1 小游戏开发原理初窥
2-2 JS面向对象初步填坑

第3章 微信小游戏逻辑梳理与API初探
本章首先会对我们要开发的微信小游戏项目进行逻辑上的梳理,然后对微信小游戏如何最终呈现的原理进行解读,最后会带大家对微信小游戏前期要用到的API进行初探。
3-1 小游戏逻辑和类梳理
3-2 小游戏API初探-1
3-3 小游戏API初探-2
3-4 小游戏框架搭建与开发工具兼容性填坑
3-5 ES6与小游戏资源加载器的封装

第4章 微信小游戏主体开发
本章首先会带大家场景微信小游戏的导演类,同时讲解单例的应用技巧,然后为大家补充一些Canvas的坑与使用技巧,接着对微信小游戏的基础精灵类进行封装,并对静态背景的一级图片进行定位和裁剪,然后开始按照微信小游戏的开发流程和逻辑实现动态地板,管道,之后是小鸟图片的创建和运动逻辑的控制,最后将各部分整合成为一个…
4-1 导演类的创建与设计模式-单例科普
4-2 canvas图片加载花式填坑
4-3 基础精灵类的封装与静态背景的实现
4-4 资源管理器的封装
4-5 优化与封装代码让代码更有设计感
4-6 JS面向对象深层填坑—ES5
4-7 JS面向对象深层填坑—ES6
4-8 canvas运动渲染不断移动的地板
4-9 小游戏渲染原理填坑
4-10 小游戏上下铅笔形管道的创建-1
4-11 小游戏上下铅笔形管道的创建-2
4-12 小游戏上下铅笔形管道的创建-3
4-13 小游戏控制逻辑的整合
4-14 小游戏小鸟类的创建和逻辑分析
4-15 小游戏小鸟类逻辑实现-开始玩鸟
4-16 小游戏小鸟类逻辑实现-让小鸟动起来
4-17 小游戏小鸟类逻辑实现-让小鸟掉下来
4-18 小游戏小鸟类逻辑实现-让小鸟再飞起来
4-19 小游戏小鸟碰撞地板逻辑实现
4-20 小游戏小鸟碰撞铅笔逻辑实现
4-21 小游戏重新开始逻辑实现
4-22 小游戏计分器逻辑实现
4-23 小游戏效果展示和逻辑完善
4-24 小游戏迁移到微信小游戏开发工具
4-25 小游戏迁移到真机调试填坑
4-26 【拓展内容】项目结构设计详解

第5章 微信小游戏其他实用API讲解
本章会对微信小游戏其他比较实用的API进行讲解和应用(音乐和振动API,获取用户信息,设置和登录API,网络请求之HTTP,WebSocket,文件下载等API),并让大家学会快速学习新API,实现更好的创意。
5-1 小游戏音乐和振动功能API讲解
5-2 小游戏获取用户信息,设置和登录API讲解
5-3 小游戏网络请求之HTTP请求API讲解
5-4 小游戏网络请求之WebSocket请求API讲解
5-5 小游戏网络请求之下载文件API讲解

第6章 课程总结与展望
本章会带大家一起总结本课程的核心内容和经验技巧,并展望微信小游戏的未来,祝大家都能开发出自己的微信小游戏,和微信小游戏一起创造美好未来。学员作品演示:链接:https://pan.baidu.com/s/1smPKWtn 密码:gsl7
6-1 课程总结

课程截图:

Web自动化测试 Selenium基础到企业应用

课程简介:

Web自动化测试 Selenium基础到企业应用
采用目前主流的开源Web自动化工具Selenium,以真实的慕课网网站为例,理论结合实战操作,从简单的登录到复杂的购物流程,助你快速掌握Web自动化测试开发的核心知识,并运用到实际测试开发工作当中。
[code]官方课程链接:https://coding.imooc.com/class/118.html[/code]

课程目录:

第1章 自动化测试的前提及整体介绍
测试的现状及课程目标,功能测试和自动化测试的区别,自动化测试流程有哪些,自动化用例和功能用例的区别,自动化测试用例的编写,selenium的优势及工作原理。
1-1 Web自动化测试课程介绍
1-2 功能测试和自动化测试的区别
1-3 自动化测试流程有哪些
1-4 自动化测试用例和手工用例的区别
1-5 自动化测试用例编写
1-6 selenium的优势以及工作原理

第2章 Selenium基础知识回顾
IDE及环境配置,html定位基础知识,元素定位,常见元素处理,下拉框处理,元素进阶操作(actions),特殊窗口切换处理,强制\隐式\显示等待。
2-1 IDE及环境配置
2-2 HTML定位基础知识
2-3 元素定位
2-4 常见元素处理-理论
2-5 Input元素处理
2-6 radio元素处理
2-7 常见元素的处理-check
2-8 checkbox元素操作
2-9 button元素的处理
2-10 webform提交
2-11 常见元素处理-upfile
2-12 上传头像方法-01
2-13 上传头像方法-02-autoit
2-14 下拉框-选择元素
2-15 下拉列表-多选下拉列表元素信息
2-16 元素进阶操作
2-17 特殊窗口切换
2-18 等待函数
2-19 selenium基础面试技巧

第3章 慕课网帐号登录测试实战
登陆功能需求分析及用例设计,如何对登陆进行功能测试,登陆自动化用例设计,自动化环境maven的使用,开发自动化登陆脚本,登陆脚本代码重构与封装,如何读取配置文件,登陆账号参数化代码实战,账号登陆失败自动截图实战,登陆代码分层设计,driver方法及基类封装实战,登陆po设计模式代码实战,使用log4j收集日志,生成ht…
3-1 登陆功能需求分析及用例设计
3-2 如何对登陆功能进行功能测试
3-3 登录自动化用例的设计
3-4 maven的使用
3-5 开发自动化登陆脚本
3-6 登陆脚本重构by封装
3-7 登陆脚本重构element封装
3-8 读取配置文件
3-9 读取配置文件-重构封装
3-10 登陆账号参数化代码实战
3-11 testng简单使用
3-12 登陆失败自动截图
3-13 -01testng和监听事件原理讲解及代码实现
3-14 -02testng和监听事件实现错误自动截图
3-15 通过监听事件实现失败自动截图
3-16 登陆代码分层设计
3-17 driver以及基类的封装
3-18 基类封装-BasePage
3-19 登陆po设计模式代码实战-01-loginPage封装
3-20 登陆po设计模式代码实战-02-loginPageHandle
3-21 登陆po设计模式代码实战-03-loginPagePro
3-22 登陆po设计模式代码实战-04-testLogin
3-23 使用log4j手机日志
3-24 生成html测试报告
3-25 selenium框架面试技巧

第4章 慕课网购买下单流程测试实战
购物流程需求分析及功能用例设计,如何对下单流程进行功能测试,自动化测试用例设计,开发遍历商品代码实战,Assert函数的使用,购买商品代码实战,购买流程代码重构与封装,购买流程进行分层设计,商品详情页实战pageobject,模态框处理购物车已存在商品,确认订单页面实现pageobject,支付中心实现pageobject,分层代码实…
4-1 购物流程功能需求分析
4-2 购物流程功能用例设计
4-3 购物流程功能测试
4-4 自动化用例设计
4-5 遍历课程实战-1
4-6 遍历课程实战-2
4-7 断言的使用
4-8 购买商品代码实战
4-9 重构购买商品代码
4-10 课程页面元素封装
4-11 课程页面操作
4-12 课程页面业务层
4-13 添加购物车case
4-14 模态框处理购物车已经有商品
4-15 确认订单页面pageobject
4-16 支付中心页面pageobject
4-17 自动化测试报告
4-18 自动发送邮件

第5章 testNG的具体使用
本章先通过testNG的简单介绍以及引入让用户对testNG有一个大概的认识,然后通过testNG基础语法的介绍来学习testNG在工作中的简单运用,参数化是自动化不可缺少的一部分,同样在课程中也通过实际例子讲解了参数化的运用。testNG并发只需要通过他自带的多线程机制就能轻松实现,课程中结合实际例子讲解了如果使用多线程同时操…
5-1 testng的基础运用
5-2 testng基础用法
5-3 testng实现参数化
5-4 testng多线程
5-5 testng与maven结合
5-6 企业中case运用
5-7 case在企业中的运用-购物
5-8 自动化框架面试

第6章 项目最后的CI持续集成
持续集成可以让你随时随地都可以对线上系统进行自动化测试,本章首先通过最基础的环境搭建开始,了解他的构成,然后通过讲解他的项目配置让程序跑起来,并且通过搭建邮件系统通知我们每次执行结果。最后通过一系列常见面试问题来巩固课程的知识体系以及持续集成相关知识。…
6-1 持续集成环境配置
6-2 持续集成项目配置
6-3 持续集成邮件通知
6-4 面试实战

第7章 知识重难点回顾及框架扩展
通过简单的回忆,回顾课程的知识点,检验知识掌握程度,如何开发属于自己的自动化测试框架,通过一个简单的关键字框架思路进行介绍。
7-1 知识重难点回顾
7-2 接口框架拓展

第8章 Selenium自动化框架封装优化
selenium底层实现原理,通过requests启动浏览器实现自动化,通过requests实现selenium自动化完整封装
8-1 selenium底层实现原理
8-2 通过requests启动浏览器实现自动化
8-3 通过requests实现selenium自动化完整封装

第9章 Selenium使用Python扩充
使用python进行模块化自动化测试分析,如何获取excel的内容简单代码编写,获取excel内容方法重构封装,selenium-python从零开始学习low代码,通过excel封装基类方法,封装定位方式,封装操作元素的方法,流程梳理和代码封装,调试重构代码以及错误解决,通过反射和多参实现关键字驱动自动化。…
9-1 使用python进行模块化自动化测试分析
9-2 如何获取excel的内容简单代码编写
9-3 获取excel内容方法重构封装
9-4 selenium-python从零开始学习low代码
9-5 selenium-python通过excel封装基类方法
9-6 selenium-python封装定位方式
9-7 selenium-python封装操作元素的方法
9-8 selenium-python流程梳理和代码封装
9-9 selenium-python调试重构代码以及错误解决
9-10 selenium-python通过反射和多参实现关键字驱动自动化
备注:部分官方后期更新的课程没有收集!!

课程截图:

Python3入门机器学习 经典算法与应用

课程简介:

由北京尚学堂人工智能学院研发的这门课程应各位同学对尚学堂的认可和对知识的渴求,希望帮助更多的有志之士能从中获益,也希望能帮助到对人工智能感兴趣的爱好者。
[code]官方课程链接:https://coding.imooc.com/class/chapter/169.html[/code]

课程目录:

第1章 欢迎来到 Python3 玩转机器学习
欢迎大家来到《Python3玩转机器学习》的课堂。在这个课程中,我们将从0开始,一点一点进入机器学习的世界。本门课程对机器学习领域的学习,绝不不仅仅只是对算法的学习,还包括诸如算法的评价,方法的选择,模型的优化,参数的调整,数据的整理,等等一系列工作。准备好了吗?现在开始我们的机器学习之旅!…
1-1 什么是机器学习
1-2 课程涵盖的内容和理念
1-3 课程所使用的主要技术栈

第2章 机器学习基础
机器学习到底是什么鬼?这一章将带领大家深入理解机器学习的世界,让大家去熟悉那些看似陌生的专业术语。监督学习,非监督学习,半监督学习,增强学习,批量学习,在线学习,参数学习,非参数学习。看完这一章,这些概念你就统统了解啦。不仅如此,本章还包含相当深刻地和机器学习相关的哲学探讨,让你深入思索有关机器学习…
2-1 机器学习世界的数据
2-2 机器学习的主要任务
2-3 监督学习,非监督学习,半监督学习和增强学习
2-4 批量学习,在线学习,参数学习和非参数学习
2-5 和机器学习相关的“哲学”思考
2-6 课程使用环境搭建

第3章 Jupyter Notebook, numpy和matplotlib
工欲善其事,必先利其器。在本章,我们将学习和机器学习相关的基础工具的使用:Jupyter Notebook, numpy和matplotlib。大多数教程在讲解机器学习的时候,大量使用这些工具,却不对这些工具进行系统讲解。我特意添加了这个章节,让同学们在后续编写机器学习算法的过程中,更加得心应手!…
3-1 Jupyter Notebook基础
3-2 Jupyter Notebook中的魔法命令
3-3 Numpy数据基础
3-4 创建Numpy数组(和矩阵)
3-5 Numpy数组(和矩阵)的基本操作
3-6 Numpy数组(和矩阵)的合并与分割
3-7 Numpy中的矩阵运算
3-8 Numpy中的聚合运算
3-9 Numpy中的arg运算
3-10 Numpy中的比较和Fancy Indexing
3-11 Matplotlib数据可视化基础
3-12 数据加载和简单的数据探索

第4章 最基础的分类算法-k近邻算法 kNN
k近邻算法本身是一个思想非常简单的算法,但是这个简单算法背后,也蕴含着丰富的内容。在这一章,我们将详细介绍k近邻算法的原理,进而对训练数据集,测试数据集,分类准确度,超参数,数据归一化,样本距离等基础概念进行详细的探讨。我们将详细了解scikit-learn框架中对算法的封装,并实现我们自己的算法框架。我们还将学…
4-1 k近邻算法基础
4-2 scikit-learn中的机器学习算法封装
4-3 训练数据集,测试数据集
4-4 分类准确度
4-5 超参数
4-6 网格搜索与k近邻算法中更多超参数
4-7 数据归一化
4-8 scikit-learn中的Scaler
4-9 更多有关k近邻算法的思考

第5章 线性回归法
线性回归法是机器学习领域的经典算法,很多更复杂的算法都是以线性回归为基础的。在这一章,我们将深入学习线性回归法背后的原理,同时仔细探讨如何评价回归算法。大家将对MSE,RMSE,MAE和R Squared等回归问题的评价指标有充分的理解。在实现层面上,我们还将学习机器学习领域的一个重要的实现技巧:向量化。…
5-1 简单线性回归
5-2 最小二乘法
5-3 简单线性回归的实现
5-4 向量化
5-5 衡量线性回归法的指标:MSE,RMSE和MAE
5-6 最好的衡量线性回归法的指标:R Squared
5-7 多元线性回归和正规方程解
5-8 实现多元线性回归
5-9 使用scikit-learn解决回归问题
5-10 线性回归的可解释性和更多思考

第6章 梯度下降法
梯度下降法是在机器学习领域的一个重要的搜索策略。在这一章,我们将详细讲解梯度下降法的基本原理,一步一步改进梯度下降算法,让大家理解梯度下降法中各种参数,尤其是学习率的意义。同时,我们还将引申出随机梯度下降法和小批量梯度下降法两个方法,让大家对梯度下降法家族有一个全方位的认识。…
6-1 什么是梯度下降法
6-2 模拟实现梯度下降法
6-3 线性回归中的梯度下降法
6-4 实现线性回归中的梯度下降法
6-5 梯度下降法的向量化和数据标准化
6-6 随机梯度下降法
6-7 scikit-learn中的随机梯度下降法
6-8 如何确定梯度计算的准确性?调试梯度下降法
6-9 有关梯度下降法的更多深入讨论

第7章 PCA与梯度上升法
通常教材会使用非常多的数学概念来讲解PCA,在这个课程中,我们将另辟蹊径,绕开繁重的数学概念,使用梯度下降法的姊妹方法:梯度上升法来求解PCA问题,进而深刻理解PCA的基本原理,如何使用PCA进行数据的降维。我们还将给出多个PCA的应用场景,不仅让大家亲手实践出PCA降维的巨大威力,也让大家看到PCA在降噪,人脸识别等…
7-1 什么是PCA
7-2 使用梯度上升法求解PCA问题
7-3 求数据的主成分PCA
7-4 求数据的前n个主成分
7-5 高维数据映射为低维数据
7-6 scikit-learn中的PCA
7-7 试手MNIST数据集
7-8 使用PCA对数据进行降噪
7-9 人脸识别与特征脸

第8章 多项式回归与模型泛化
在这一章,我们将接触非线性问题。我们将学习多项式回归的思想,使用线性回归的思路来解决非线性问题。进一步,我们将引申出或许是机器学习领域最重要的一个问题:模型泛化问题。我们将深入探讨什么是欠拟合,什么是过拟合,怎样检测欠拟合和过拟合。什么是交叉验证,什么是模型正则化。听起来拗口的Ridge和Lasso都是什么鬼…
8-1 什么是多项式回归
8-2 scikit-learn中的多项式回归与Pipeline
8-3 过拟合与欠拟合
8-4 为什么要有训练数据集与测试数据集
8-5 学习曲线
8-6 验证数据集与交叉验证
8-7 偏差方差平衡
8-8 模型泛化与岭回归
8-9 LASSO
8-10 L1, L2和弹性网络

第9章 逻辑回归
据统计,逻辑回归是机器学习领域最常用的分类算法,没有之一!在这一章,我们将逐渐揭开逻辑回归的神秘面纱,了解如何应用线性回归的思路,来解决分类问题。我们将综合之前所学习的很多内容,一点一点来完善我们的逻辑回归模型。我们还将继续深入分类问题,学习对分类结果概率的估计,以及决策边界等重要概念。 …
9-1 什么是逻辑回归
9-2 逻辑回归的损失函数
9-3 逻辑回归损失函数的梯度
9-4 实现逻辑回归算法
9-5 决策边界
9-6 在逻辑回归中使用多项式特征
9-7 scikit-learn中的逻辑回归
9-8 OvR与OvO

第10章 评价分类结果
对机器学习分类算法结果的评估,是一个公认的复杂问题。在这一章,我们将来阐述这个问题为什么复杂。我们如何更好地看待我们的机器学习算法给出的结果。学习诸如混淆矩阵,准确率,精确率,召回率,F1,以及ROC等诸多评价分类结果的指标。通过这一章的学习,大家将更好地理解自己的机器学习算法给出的结果,从而在实际应用…
10-1 准确度的陷阱和混淆矩阵
10-2 精准率和召回率
10-3 实现混淆矩阵,精准率和召回率
10-4 F1 Score
10-5 精准率和召回率的平衡
10-6 精准率-召回率曲线
10-7 ROC曲线
10-8 多分类问题中的混淆矩阵

第11章 支撑向量机 SVM
在这一章,我们将深入学习大名鼎鼎的支撑向量机SVM。我们将从线性SVM开始,理解SVM的思路,进而深入理解SVM解决非线性问题的方式——核函数。我们将重点学习两个最重要的核函数:多项式核和径向基函数核。我们更会使用真实的数据集实验,看到SVM的优缺点。最后,我们还将探讨使用SVM解决回归问题的思路。 …
11-1 什么是SVM
11-2 SVM背后的最优化问题
11-3 Soft Margin SVM
11-4 scikit-learn中的SVM
11-5 SVM中使用多项式特征和核函数
11-6 到底什么是核函数
11-7 RBF核函数
11-8 RBF核函数中的gamma
11-9 SVM思想解决回归问题

第12章 决策树
在这一章,我们将学习另外一个大名鼎鼎的机器学习算法:决策树。决策树本身非常简单,背后并没有复杂的数学模型,但使用好决策树也有很多技巧。我们将深入了解什么是熵模型,什么是基尼系数,怎样使用决策树解决分类问题,怎样获得分类的概率,怎样用决策树解决回归问题,以及使用决策树的注意事项。 …
12-1 什么是决策树
12-2 信息熵
12-3 使用信息熵寻找最优划分
12-4 基尼系数
12-5 CART与决策树中的超参数
12-6 决策树解决回归问题
12-7 决策树的局限性

第13章 集成学习和随机森林
集成学习的思想是机器学习领域解决问题的一种重要思想。我们将从集成之前已经学习过的算法出发,进而引入集成学习的经典算法:随机森林。我们将看到集成学习的威力。在这一章,我们还会对其他集成学习的思想,如AdaBoost, Gradient Boosting, Stacking等算法进行介绍。 …
13-1 什么是集成学习
13-2 Soft Voting Classifier
13-3 Bagging 和 Pasting
13-4 oob (Out-of-Bag) 和关于Bagging的更多讨论
13-5 随机森林和 Extra-Trees
13-6 Ada Boosting 和 Gradient Boosting
13-7 Stacking

第14章 更多机器学习算法
相信通过这个课程的学习。同学们学到的不仅仅是一个一个零散的机器学习算法,更对机器学领域解决问题的方式有了一个系统性的认识。学会了这种思维方法,相信大家都可以更好地继续深入学习机器学习。在最后,我将给大家介绍scikit-learn的文档,希望大家能够借助scikit-learn这个强大的机器学习库,继续探索机器学习这个当下…

14-1 学习scikit-learn文档, 大家加油!
14-2 学习完这个课程以后怎样继续深入机器学习的学习?

课程截图:

Java并发编程与高并发解决方案

课程简介:

【并发编程与高并发难题我们一起攻克】本课程将结合大量图示及代码演示,让你更容易, 更系统的掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段(扩容,缓存,队列,拆分等)相关知识和经验。帮助你构建完整的并发与高并发知识体系,胜任实际开发中并发与高并发问题的处理,倍增高薪面试成功率!

[code]官方课程链接:https://coding.imooc.com/class/195.html#Anchor[/code]

课程目录:

第1章 课程准备(入门课程)

课程目标:Java并发编程入门,适合没有并发编程经验的同学,本章首先从课程重点、特点、适合人群及学习收获几个方面对课程进行整体的介绍,然后会从一个实际的计数场景实现开始,给大家展示多线程并发时的线程不安全问题,让大家能够初体验到并发编程,之后会讲解并发和高并发的概念,并通过对比让大家明白到底什么是并发和…

1-1 课前必读(不看会错过一个亿)
1-2 课程导学
1-3 并发编程初体验
1-4 并发与高并发基本概念(选看)
1-5 JAVA内存模型
1-6 并发的优势与风险(选看)

第2章 准备工作

本章主要是为课程里代码演示做必要的准备。首先会基于SpringBoot快速搭建一个方便演示的Java项目,然后简单介绍一下码云及代码的管理。项目搭建好,我会使用简单的例子演示一下并发的模拟验证,主要包括对工具Postman、JMeter、Apache Bench(AB)的使用,以及使用并发的代码来验证并发处理的正确性。…

2-1 案例环境初始化
2-2 案例准备工作
2-3 并发模拟-工具
2-4 并发模拟-代码

第3章 线程安全性讲解

本章讲解线程安全性,主要从原子性、可见性、有序性三个方面进行讲解。原子性部分,会详细讲解atomic包下相关类、CAS原理、Unsafe类、synchronized关键字等的使用及注意事项。可见性部分,主要介绍的是volatile关键字的规则和使用,及synchronized关键字的可见性。有序性部分,则重点讲解了happens-before原则。这里涉及到…

3-1 线程安全性-原子性-atomic-1
3-2 线程安全性-原子性-atomic-2
3-3 线程安全性-原子性-synchronized
3-4 线程安全性-可见性
3-5 线程安全性-有序性与总结

第4章 安全发布对象讲解

本章主要讲解安全发布对象的一些核心方法,主要通过单例类的多种实现方式,让大家在实现过程中去体会这些方法的具体含义。这一章也是对线程安全性的巩固,也是把线程安全性涉及的一些关键字和类再一次放到实际场景中使用,加深大家对他们的印象和认识。…

4-1 安全发布对象-发布与逸出
4-2 安全发布对象-四种方法-1
4-3 安全发布对象-四种方法-2

第5章 线程安全策略讲解

本章主要讲解线程安全策略,包括定义不可变对象、线程封闭、同步容器、并发容器等,引出并发里的关键知识J.U.C。同时还额外介绍了开发中常见的一些线程不安全类和写法,并给出他们各自对应的替代方案。这一章涉及的内容在日常开发和面试中都会涉及很多。…

5-1 不可变对象-1
5-2 不可变对象-2
5-3 线程封闭
5-4 线程不安全类与写法-1
5-5 线程不安全类与写法-2
5-6 同步容器-1
5-7 同步容器-2
5-8 并发容器及安全共享策略总结

第6章 J.U.C之AQS讲解

AQS是J.U.C的重要组件,也是面试的重要考点。这一章里将重点讲解AQS模型设计及相关同步组件的原理和使用,都非常实用,具体包括:CountDownLatch、Semaphore、CyclicBarrier、ReentrantLock与锁、Condition等。这些组件需要大家能熟练明白他们的用途及差异,不但会使用,而且还要明确知道不同方法调用后的不同效果。…

6-1 J.U.C之AQS-介绍
6-2 J.U.C之AQS-CountDownLatch
6-3 J.U.C之AQS-Semaphore
6-4 J.U.C之AQS-CyclicBarrier
6-5 J.U.C之AQS-ReentrantLock与锁-1
6-6 J.U.C之AQS-ReentrantLock与锁-2

第7章 J.U.C组件拓展

这一章继续讲解J.U.C相关组件,主要包括FutureTask、Fork/Join框架、BlockingQueue,其中FutureTask讲解时会对比着Callable、Runnable、Future来讲。这些组件使用场景相对AQS会少一些,但也是J.U.C的重要组成部分,也是需要掌握的。

7-1 J.U.C-FutureTask-1
7-2 J.U.C-FutureTask-2
7-3 J.U.C-ForkJoin
7-4 J.U.C-BlockingQueue

第8章 线程调度-线程池讲解

本章讲解J.U.C里最后一部分:线程池。面试大概率会问到线程池相关的知识点。这一章将主要从new Thread弊端、线程池的好处、ThreadPoolExecutor详细介绍(参数、状态、方法)、线程池类图、Executor框架接口等进行讲解,需要大家能了解线程池的许多细节及配置,并能在实际项目中正确使用。…

8-1 线程池-1
8-2 线程池-2
8-3 线程池-3

第9章 多线程并发拓展讲解

本章会对并发编程做些补充,但都贴近当前的面试,主要讲解死锁产生的条件及预防、多线程并发编程的最佳实践、Spring与线程安全、以及面试都特别喜欢问的HashMap和ConcurrentMap源码细节。当然,面试喜欢问的问题,对实际项目开发也是特别重要的。…

9-1 死锁
9-2 并发最佳实践
9-3 Spring与线程安全
9-4 HashMap与ConcurrentHashMap解析
9-5 多线程并发与线程安全总结

第10章 高并发之扩容思路

高并发部分:主讲思路,侧重面试,本章主要讲扩容思路,首先介绍垂直扩容和水平扩容的区别,之后介绍数据库读操作扩展和写操作扩展思路。

10-1 扩容思路讲解

第11章 高并发之缓存思路

高并发部分:主讲思路,本章讲解高并发中缓存方案。包含对缓存特征(命中率、最大元素、清空策略)、影响缓存命中率因素、缓存分类和应用场景(本地缓存、分布式缓存)、高并发场景下缓存常见问题(缓存一致性、缓存并发、缓存穿透、雪崩)等的具体介绍。此外,针对大家常用的缓存组件Guava Cache、Memcache、Redis也做了…

11-1 缓存-特征、场景及组件介绍-1
11-2 缓存-特征、场景及组件介绍-2
11-3 缓存-redis的使用讲解-1
11-4 缓存-redis的使用讲解-2
11-5 缓存-高并发场景问题讲解

第12章 高并发之消息队列思路

高并发部分:主讲思路,本章介绍了消息队列的特性(业务无关、FIFO、容灾、性能)、为什么需要消息队列以及消息队列的好处(业务解耦、最终一致性、广播、错峰与流控),最后对当前比较流行的消息队列组件kafka和rabbitmq做了架构分析和特性介绍,如需深入学习请移步:https://coding.imooc.com/class/262.html。…

12-1 消息队列介绍-1
12-2 消息队列介绍-2
12-3 消息队列介绍-3

第13章 高并发之应用拆分思路

本章直接从实际项目拆分步骤讲起,让大家可以实际感受到应用拆分的好处和解决的问题,之后引出对应用拆分原则(业务优先、循序渐进、兼顾技术、可靠测试)和应用拆分时思考的内容(应用之间通信、应用之间数据库设计、避免事务跨应用),并引出对服务化Dubbo和微服务Spring Cloud的框架介绍。…

13-1 应用拆分思路-1
13-2 应用拆分思路-2

第14章 高并发之应用限流思路

高并发部分:主讲思路,本章从实际项目保存百万数据的限流场景开始讲起,让大家感受一下某些高并发场景下使用限流和不使用限流的区别,明确限流的重要作用。之后详细介绍了限流常用的四种算法:计数法、滑动窗口、漏桶算法和令牌桶算法,并对他们做了简单的对比。…

14-1 应用限流思路-1
14-2 应用限流思路-2
14-3 应用限流思路-3

第15章 服务降级与服务熔断思路

主讲思路,本章首先通过举例让大家明白什么是服务降级和服务熔断,之后介绍了服务降级的分类:自动降级(超时、失败次数、故障、限流)和人工降级(开关),总结了服务降级和服务熔断的共性(目的、最终表现、粒度、自治)和区别(出发原因、管理目标层次、实现方式)以及服务降级要考虑的问题。最后介绍了Hystrix在服务降…

15-1 服务降级与服务熔断思路-1
15-2 服务降级与服务熔断思路-2

第16章 数据库分库分表与高可用手段

高并发部分:主讲思路,本章从数据库瓶颈开始讲起,引出对数据库切库分库分表的介绍。数据库切库里重点介绍了读写分离的设计,对比支持多数据源和分库的区别;最后介绍了什么时候该考虑分表、横向分表与纵向分表,以及通过mybatis的分页插件shardbatis2.0实现数据库分表。之后介绍了高可用的三个常用手段:任务调度系统分布…

16-1 数据库切库分库分表思路
16-2 高可用一些手段

第17章 课程总结

本章首先对本课程的知识进行总结回顾,然后针对面试中的并发问题与高并发问题进行提问,希望大家都能有所收获,并期待与大家共同探讨并发与高并发的话题。

17-1 课程总结

课程截图:

PHP开发高可用高安全App后端

课程简介:

这是一门在工作中非常实用的课程,根据新闻类App业务逻辑,采用主流的RESTful 接口方式,带你在真实的项目实战中,开发一套完整的、安全的、高效的App后台系统,并带你学会API数据传输安全、第三方消息推送,前后台联调,App 复杂登录等多种实用技术

[code]官方课程链接:https://coding.imooc.com/class/135.html[/code]

课程目录:

第1章 课程介绍
本章先讲解课程所含技术点,并演示相关的项目,让小伙伴对课程有个初步的认知,然后再带领小伙伴进行功能的分析,表的ER总关系图
1-1 App项目功能介绍
1-2 项目功能需求分析
1-3 数据表ER关系总图对应讲解

第2章 课前准备工作
本章主要讲解课程的一些准备工作知识、包括工具、环境、模板等。
2-1 项目环境搭建及postman等工具介绍
2-2 thinkphp5.0的安装
2-3 项目后台模板的搭建

第3章 后台登录功能详解
本章主讲了后台登录相关的功能,包括验证码、登录、退出登录、权限控制等
3-1 后台用户表的设计
3-2 新增后台用户功能开发
3-3 后台验证码功能开发
3-4 后台登录功能开发(上)
3-5 后台登录功能开发(下)
3-6 后台退出登录功能开发
3-7 后台权限控制功能的实现

第4章 娱乐新闻内容管理
娱乐新闻app哪能少得了文章呢!本章详细讲解了新闻内容的增删改查,在处理图片上传和分页的地方我们采用了多种解决方案:TP5内置的图片上传到本地服务器、图片上传到七牛云;分页模块中我们会介绍采用P5内置的分页模式及利用第三方开源的分页组件完美对接分页;让小伙伴们掌握不同的处理方案!…
4-1 娱乐新闻表结构设计
4-2 上传图片插件准备工作介绍
4-3 新闻内容添加–图片上传到本地服务
4-4 高级图片上传–七牛简介以及获取sdk
4-5 高级图片上传 – 上传到七牛云
4-6 新闻内容添加功能实现
4-7 列表页面开发之普通列表展示
4-8 列表页面开发之引入laypage
4-9 列表页面开发之搜索支持
4-10 新闻删除功能的开发
4-11 修改新闻状态功能开发

第5章 restful api那些事
本章讲解了restful简介,让小伙伴对restful有了新的认知,并且教大家如何在tp5中完美使用restful,然后教大家如何去封装restful api接口数据,并且一步一步的带领大家完美解决不可预知的API内部异常。
5-1 restful api简介
5-2 如何使用restful
5-3 通用化API接口数据封装
5-4 不可预知的内部异常api数据输出解决方案(一)
5-5 不可预知的内部异常api数据输出解决方案(二)

第6章 API数据安全解决方案
安全问题现在越来越多的受到大家的关注,如何对数据进行保密?如何进行数据传输更安全?本章会教大家APP-API数据安全解决方案,并从多个维度进行讲解。如:加密算法之aes引入,授权码sign算法,token唯一性支持;API一次性请求支持,APP本地时间和服务器时间一致性完美解决方案等。让大家对安全有一个新的认识!…
6-1 APP-API数据安全介绍
6-2 API接口数据安全解决方之开篇
6-3 API接口数据安全解决方案之授权码sign解剖
6-4 API接口数据安全解决方案之sign检验
6-5 API接口数据安全解决方案之sign有效时间处理
6-6 API接口数据安全解决方案之授权sign唯一性支持
6-7 APP和服务器端时间一致性解决方案

第7章 APP-API基础信息接口开发以及接口文档详解
本章主要讲解了非登录状态下的接口,包括首页、栏目页、详情页、搜索、相关推荐等接口,还教大家如何解决API接口版本方案、如何编写接口文档、如何联调数据,包括postman工具, APP调试(编辑器调试、手机调试)等
7-1 新闻栏目接口开发(上)
7-2 新闻栏目接口开发(下)
7-3 api接口版本控制
7-4 api接口文档编写
7-5 App客户端及后台功能联调
7-6 APP首页接口开发
7-7 App列表页面接口开发
7-8 新闻搜索功能接口开发
7-9 新闻排行接口开发
7-10 新闻详情页面接口开发
7-11 本章功能整体调试

第8章 APP版本升级业务开发
本章先带领大家分析APP版本升级业务,然后带领小伙伴设计版本表,最后带领大家一一攻破此业务的开发,让您轻轻松松应对APP版本升级业务。
8-1 App版本升级业务介绍
8-2 App版本表结构的设计
8-3 App版本升级接口开发(一)
8-4 版本升级接口开发(二)
8-5 版本升级联调

第9章 登录、个人中心、点赞以及评论功能开发
处理App的登录功能是小伙伴们都会恼火的事情。本章的逻辑全是登录状态下内容,首先分析登录业务,接着讲解web登录和APP登录的异同之处;登录中引入了阿里大于验证码机制,并且对阿里大于SDK进行高度的封装同事引入PHP设计模式讲解;在登录下的API中,我们采用access_user_token算法机制,来验证登录身份,在获取评论列表的地…
9-1 App登录业务介绍
9-2 App登录表结构的设计
9-3 阿里大于云通信服务平台介绍
9-4 打造属于适配TP5模式的阿里大于
9-5 编写第一个发送短信demo
9-6 代码高度复用-发送短信类库封装(一)
9-7 代码高度复用-发送短信类库封装(二)
9-8 代码高度复用-发送短信类库封装(三)
9-9 发送短信验证码功能开发
9-10 APP登录之短信验证码方式登录(一)
9-11 APP登录之token唯一性算法(二)
9-12 APP登录-短信验证码方式登录(三)
9-13 APP登录安全性保障(四)
9-14 权限控制详解
9-15 access_user_token安全性问题思考
9-16 个人中心-获取用户基本信息数据
9-17 个人中心-设置个人头像接口开发
9-18 个人中心-其他基本信息修改
9-19 个人中心 – 个人密码设置
9-20 APP登录-按密码方式登录
9-21 登录、个人中心设置等APP调试
9-22 点赞表的设计
9-23 点赞功能开发
9-24 取消点赞功能开发
9-25 获取文章是否被点赞
9-26 评论表的设计
9-27 评论功能开发
9-28 评论列表API开发之原生关联查询MySQL语句解剖
9-29 评论列表API开发之关联连表查询
9-30 评论列表API开发之优化方案
9-31 点赞评论等APP调试

第10章 APP端异常、性能监控及定位分析
开发中遇到bug是每个小伙伴们最头疼的问题,那么我们如何去监控、排查、定位进而去解决bug呢?本章先带领大家分析APP端异常等业务,然后讲解异常以及性能数据收集解决方案,最终引入开源成熟的APP端异常性能监控定位分析平台: 如百度、腾讯 。一步一步的让大家轻松应对开发中的bug。…
10-1 App端异常基本情况介绍
10-2 数据收集方案解剖
10-3 成熟解决方案介绍

第11章 打造APP消息推送服务
一款完整的app,推送功能是必不可少的。本章先讲解APP消息推送业务,接下来讲解两种推送方案:原始轮训以及第三方极光推送,并对两种不同的推送方案进行优缺点解析,让小伙伴对APP推送有新的认知。
11-1 APP消息推送介绍
11-2 原始解决方案-轮训法处理
11-3 使用第三方推送平台
11-4 SDK下载和安装
11-5 发送第一个demo
11-6 发送消息类库 – 基础封装

第12章 课程总结
在总结中课程会结合讲师多年一线互联网工作经验分享相关工作经验给小伙伴,让小伙伴能在职场中快速上位
12-1 课程重点总结

课程截图:


感谢来自@twldl的投稿!

扛得住的MySQL数据库架构

课程简介:

数据库优化是系统工程,性能的提升靠整体。本课程将面面俱到的讲解提升数据库性能的各种因素,让你在最短的时间从小白到资深,将数据库整体架构了然于胸

[code]官方课程链接:https://coding.imooc.com/class/chapter/49.html[/code]

课程目录:

第1章 实例和故事
决定电商11大促成败的各个关键因素。
1-1 什么决定了电商双11大促的成败
1-2 在双11大促中的数据库服务器
1-3 在大促中什么影响了数据库性能
1-4 大表带来的问题
1-5 大事务带来的问题

第2章 什么影响了MySQL性能
详细介绍影响性能各个因素,包括硬件、操作系统等等。
2-1 影响性能的几个方面
2-2 CPU资源和可用内存大小
2-3 磁盘的配置和选择
2-4 使用RAID增加传统机器硬盘的性能
2-5 使用固态存储SSD或PCIe卡
2-6 使用网络存储SAN和NAS
2-7 总结:服务器硬件对性能的影响
2-8 操作系统对性能的影响-MySQL适合的操作系统
2-9 CentOS系统参数优化
2-10 文件系统对性能的影响
2-11 MySQL体系结构
2-12 MySQL常用存储引擎之MyISAM
2-13 MySQL常用存储引擎之Innodb
2-14 Innodb存储引擎的特性(1)
2-15 Innodb存储引擎的特性(2)
2-16 MySQL常用存储引擎之CSV
2-17 MySQL常用存储引擎之Archive
2-18 MySQL常用存储引擎之Memory
2-19 MySQL常用存储引擎之Federated
2-20 如何选择存储引擎
2-21 MySQL服务器参数介绍
2-22 内存配置相关参数
2-23 IO相关配置参数
2-24 安全相关配置参数
2-25 其它常用配置参数
2-26 数据库设计对性能的影响
2-27 总结

第3章 MySQL基准测试
了解基准测试,MySQL基准测试工具介绍及实例演示。
3-1 什么是基准测试
3-2 如何进行基准测试
3-3 基准测试演示实例
3-4 Mysql基准测试工具之mysqlslap
3-5 Mysql基准测试工具之sysbench
3-6 sysbench基准测试演示实例

第4章 MySQL数据库结构优化
详细介绍数据库结构设计、范式和反范式设计、物理设计等等。
4-1 数据库结构优化介绍
4-2 数据库结构设计
4-3 需求分析及逻辑设计
4-4 需求分析及逻辑设计-反范式化设计
4-5 范式化设计和反范式化设计优缺点
4-6 物理设计介绍
4-7 物理设计-数据类型的选择
4-8 物理设计-如何存储日期类型
4-9 物理设计-总结

第5章 MySQL高可用架构设计
详细介绍二进制日志及其对复制的影响、GTID的复制、MMM、MHA等等。
5-1 mysql复制功能介绍
5-2 mysql二进制日志
5-3 mysql二进制日志格式对复制的影响
5-4 mysql复制工作方式
5-5 基于日志点的复制
5-6 基于GTID的复制
5-7 MySQL复制拓扑
5-8 MySQL复制性能优化
5-9 MySQL复制常见问题处理
5-10 什么是高可用架构
5-11 MMM架构介绍
5-12 MMM架构实例演示(上)
5-13 MMM架构实例演示(下)
5-14 MMM架构的优缺点
5-15 MHA架构介绍
5-16 MHA架构实例演示(1)
5-17 MHA架构实例演示(2)
5-18 MHA架构优缺点
5-19 读写分离和负载均衡介绍
5-20 MaxScale实例演示

第6章 数据库索引优化
介绍BTree索引和Hash索引,详细介绍索引的优化策略等等。
6-1 Btree索引和Hash索引
6-2 安装演示数据库
6-3 索引优化策略(上)
6-4 索引优化策略(中)
6-5 索引优化策略(下)

第7章 SQL查询优化
详细介绍慢查询日志及示例演示,MySQL查询优化器介绍及特定SQL的查询优化等。
7-1 获取有性能问题SQL的三种方法
7-2 慢查询日志介绍
7-3 慢查询日志实例
7-4 实时获取性能问题SQL
7-5 SQL的解析预处理及生成执行计划
7-6 如何确定查询处理各个阶段所消耗的时间
7-7 特定SQL的查询优化

第8章 数据库的分库分表
详细介绍数据库分库分表的实现原理及演示案例等。
8-1 数据库分库分表的几种方式
8-2 数据库分片前的准备
8-3 数据库分片演示(上)
8-4 数据库分片演示(下)

第9章 数据库监控
介绍数据库可用性监控、性能监控、MySQL主从复制监控等
9-1 数据库监控介绍
9-2 数据库可用性监控
9-3 数据库性能监控
9-4 MySQL主从复制监控

课程截图:


感谢来自@twldl的投稿!

Go语言实战流媒体视频网站

课程简介:

本课程带着同学们使用Go语言实战一个流媒体视频网站。从后端Server到前端UI,全面掌握Go语言的开发关键技能和Go语言编码的架构风格。同时通过讲述SOA服务化解耦的设计理念,帮助同学们理解真实web服务背后的内容。最后通过架构调整实现Cloud native(云原生)部署。

[code]官方课程链接:https://coding.imooc.com/class/227.html[/code]

课程目录:

第1章 课程介绍
介绍这门课程大纲,技术堆栈以及环境
1-1 prestudy
1-2 课程介绍及知识要点预习

第2章 一个例子了解golang工具链
通过一个简单的webservice具体从golang的工具链,到test,全面介绍golang在工程项目里需要掌握的知识点。
2-1 一个例子了解golang常用工具链
2-2 golang项目中test的写法
2-3 golang项目中benchmark的写法
2-4 章节总结

第3章 流媒体网站架构以及API模块的实现
本章通过实战演练,从网站的整体架构设计,到服务划分,数据库设计,到api模块的实现,全面讲述golang对webservice的实现以及代码分层架构的思想,同时辅以test cases的全程编写与指导,全面了解工程化golang项目的实现。
3-1 流媒体网站整体介绍与架构梳理
3-2 api设计与架构
3-3 api实现之详细设计(上)
3-4 api实现之详细设计(中)
3-5 api实现之详细设计(下)
3-6 api之http handler层
3-7 api之数据库层设计
3-8 api之数据库层实现_数据库连接
3-9 api之数据库层实现_实现User
3-10 api之数据库层实现_编写User Test Case
3-11 api之数据库层实现_User部分代码优化
3-12 api之数据库层实现_实现和验证Video
3-13 api之数据库层实现_实现Comments
3-14 api之数据库层实现_Comments Test Case
3-15 api之session处理与实现(上)
3-16 api之session处理与实现(下)
3-17 api之http middleware的实现与handler收尾(上)
3-18 api之http middleware的实现与handler收尾(下)

第4章 stream模块
通过stream server的实现过程,着重讲述通过golang实现流式播放,上传文件,以及利用channel实现流控等实用知识点,进一步加深对golang的掌握。
4-1 stream server
4-2 streaming的架构搭建
4-3 token bucket
4-4 流控模块的实现
4-5 在http middleware中嵌入流控
4-6 streamHandler实现
4-7 验证streamHandler
4-8 uploadHandler实现
4-9 验证uploadHandler

第5章 scheduler模块
通过对生产者消费者模型在scheduler中的实现,全面了解golang是如何处理并发场景,以及如何在并发场景下通过channel实现消息同步。
5-1 scheduler介绍
5-2 代码架构搭建
5-3 runner的生产消费者模型实现
5-4 runner的使用与测试
5-5 task示例的实现
5-6 timer的实现
5-7 api实现以及scheduler完成

第6章 前端服务和模版引擎渲染
讲述如何使用golang的模版引擎来渲染html文件,如何通过原生proxy和api两种模式实现后端服务接口透传并避免跨域访问,以及整个前台在实现业务上的js逻辑代码。
6-1 大前端和golang模版引擎介绍
6-2 前端代码架构搭建
6-3 静态页面渲染
6-4 build脚本和homeHandler
6-5 userHomeHandler
6-6 api透传模块实现
6-7 proxy转发的实现
6-8 UI部分的预览
6-9 API service补全与讲解
6-10 UI之html讲解
6-11 js部分实现

第7章 网站上云
通过对网站部分架构的改造和代码重构,使之更符合cloud native架构,辅以阿里云计算存储网络等服务,最终实现网站上云,打通网站上线最后一公里。
7-1 云原生讲解
7-2 云存储改造之OSS方案分析
7-3 云存储改造之OSS适配
7-4 公共配置实现
7-5 用vendor处理公共配置包
7-6 SLB讲解与配置
7-7 SLB之添加session容错
7-8 ECS云主机和安全组配置
7-9 scheduler的改造
7-10 部署脚本以及db初始化
7-11 部署演示以及完成效果展示
7-12 课程总结(回顾,延伸和优化)

课程截图:

Kotlin打造完整电商APP 模块化+MVP+主流框架

课程目录:

  • 第1章 课程介绍(讲师参与学习讨论)

    本章会告诉大家能学到什么,课程如何安排,整个APP的效果以及用户购买流程,同时为大家讲解模块化思想,MVP架构思想,项目技术选型,项目初始化,为后面具体的开发做好准备。

    • 1-1 课程导学
    • 1-2 项目效果展示与购买流程讲解
    • 1-3 模块化理论基础讲解
    • 1-4 MVP架构理论基础讲解
    • 1-5 技术选型
    • 1-6 项目初始化与包结构设计
  • 第2章 模块化实战与主流框架配置

    本章首先以用户模块为例,带大家进行模块化实战,同时通过用户注册功能完善开发环境,最后带大家配置主流框架,如AndroidExtensions,MVP,Anko、RxKotlin、RxAndroid、Retrofit及Dagger2等,并带大家优化及拓展前面写过的代码。《全新升级 Kotlin系统入门与进阶》:http://coding.imooc.com/class/108.html…

    • 2-1 本章概述
    • 2-2 模块化实战-初始化用户模块
    • 2-3 模块化实战-动态加载模块类型
    • 2-4 Butterknife和AndroidExtensions
    • 2-5 Anko配置及使用
    • 2-6 MVP架构配置
    • 2-7 RxKotlin及RxAndroid配置
    • 2-8 Retrofit集成与单例工厂
    • 2-9 Retrofit发送注册请求
    • 2-10 Dagger2-依赖注入
    • 2-11 Dagger2-作用域Scope
    • 2-12 Dagger2-限定符Qualifier
    • 2-13 RxLifecycle配置及使用
    • 2-14 代码优化及扩展
  • 第3章 通用组件封装及通用资源文件引入

    本章首先带大家封装通用组件及自定义视图,如AppManager、HeaderBar、ProgressBar,然后会导入一些通用工具和资源文件,让大家掌握项目基础架构的设计能力,同时将一些后面需要的资源导入进来,为后面功能的开发做好脚手架。

    • 3-1 本章概述
    • 3-2 AppManager封装
    • 3-3 HeaderBar封装
    • 3-4 ProgressLoading封装-1
    • 3-5 ProgressLoading封装-2
    • 3-6 通用工具组件导入与介绍
    • 3-7 通用资源文件导入与介绍
  • 第4章 用户模块开发

    本章将带大家开发用户模块相关功能,包括用户登录、找回密码、编辑用户资料以及用户注册优化,同时会使用TakePhoto及七牛云框架完成用户头像上传功能。

    • 4-1 本章概述
    • 4-2 用户注册界面与逻辑优化
    • 4-3 用户登录开发
    • 4-4 找回密码功能
    • 4-5 编辑用户-头像选择对话框开发
    • 4-6 编辑用户-TakePhoto选择图片功能开发
    • 4-7 编辑用户-上传头像
    • 4-8 编辑用户-资料修改
    • 4-9 本章小结
  • 第5章 主模块开发

    本章带大家进行主模块的静态界面开发,因为是个人开发,所以提前引入主工程。 主要包括自定义视图,如底部导航、新闻公告等;第三方视图框架,如标签、画廊风格视图。

    • 5-1 本章概述
    • 5-2 底部导航封装
    • 5-3 首页-Banner开发
    • 5-4 首页-新闻公告功能集成
    • 5-5 首页-折扣界面开发
    • 5-6 首页-话题功能集成
    • 5-7 “我的”界面开发
    • 5-8 “我的”数据逻辑实现
  • 第6章 商品模块开发

    本章带大家进行商品模块相关业务功能的开发。包括商品分类、商品列表、商品详情、商品SKU及商品搜索等。在界面展示上,会使用上下拉刷新视图、多状态视图等,并详细介绍商品SKU,及事件监听机制。同时会初步引入ARouter进行模块路由。 …

    • 6-1 本章概述
    • 6-2 商品分类-界面开发
    • 6-3 商品分类-业务功能开发
    • 6-4 商品分类-多状态视图封装
    • 6-5 商品列表-界面及数据加载
    • 6-6 商品列表-上下拉刷新功能开发
    • 6-7 商品搜索-界面导入
    • 6-8 商品搜索-逻辑实现
    • 6-9 商品详情-界面开发
    • 6-10 商品详情-加载数据
    • 6-11 商品详情-SKU弹层实现
    • 6-12 商品详情-SKU数据加载
    • 6-13 商品详情-SKU联动实现
    • 6-14 模块路由-ARouter集成
  • 第7章 购物车模块开发

    本章带大家进行购物车相关业务功能的开发。包括加入购物车、删除购物车以及提交购物车等。并通过事件监听机制实现数量价格联动、全选/反选及编辑状态切换。

    • 7-1 本章概述
    • 7-2 商品加入购物车功能开发
    • 7-3 加入购物车数量展示
    • 7-4 购物车列表开发
    • 7-5 购物车-全选反选
    • 7-6 购物车-价格联动
    • 7-7 购物车-编辑状态切换
    • 7-8 购物车-删除购物车商品
    • 7-9 购物车-提交商品
    • 7-10 购物车-独立展示
  • 第8章 订单模块开发

    本章带大家进行订单相关业务功能的开发。包括收货人信息相关功能、提交订单及管理订单等。通过订单状态的扭转,可以看到一件商品从购买开始,一个完整的订单流程。 收货人信息相关功能也是独立,可以看到Kotlin中的序列化如何实现。 …

    • 8-1 订单模块介绍及初始化
    • 8-2 订单确认页-数据加载
    • 8-3 订单确认页-ARouter映射成员变量
    • 8-4 添加收货人信息
    • 8-5 获取收货人信息列表
    • 8-6 设置默认收货人
    • 8-7 编辑收货人信息
    • 8-8 删除收货人信息
    • 8-9 选择收货人及提交订单
    • 8-10 订单管理-界面结构开发
    • 8-11 订单管理-加载单商品订单
    • 8-12 订单管理-加载多商品
    • 8-13 订单管理-确认收货及取消订单
    • 8-14 订单详情开发
  • 第9章 支付模块开发

    本章主要介绍如何使用支付宝沙箱环境,封装一个支付模块。 重点介绍支付宝支付流程及集成,支付签名必须放到服务端实现,避免风险。

    • 9-1 本章概述
    • 9-2 支付宝集成介绍
    • 9-3 支付模块初始化
    • 9-4 获取支付签名
    • 9-5 支付宝SDK支付订单
    • 9-6 支付订单同步服务端
  • 第10章 消息模块开发

    本章带大家进行消息模块业务功能的开发。主要使用极光推送集成Push,同时处理自定义消息及通知消息。并降级如何使用ARouter实现跨模块接口调用。

    • 10-1 本章概述
    • 10-2 极光推送介绍及集成
    • 10-3 推送通知消息
    • 10-4 推送自定义消息
    • 10-5 ARouter跨模块调用推送ID接口
    • 10-6 接收服务端通知消息
    • 10-7 消息列表实现
    • 10-8 接收服务端自定义消息
  • 第11章 代码优化及课程总结

    本章带大家对写过的代码进行优化,并封装一个通用的选择图片组件,然后为大家讲解Kotlin新版的序列化特性。最后带大家做课程进行小结。

    • 11-1 注解实现序列化
    • 11-2 图片选择封装
    • 11-3 界面提示性调整
    • 11-4 课程小结

    感谢来自@akashi_sai 的投稿!!

Spark Streaming实时流处理项目实战

课程目录:

  • 第1章 课程介绍

    课程介绍

    • 1-1 -导学-
    • 1-2 -授课习惯和学习建议
    • 1-3 -OOTB环境使用演示
    • 1-4 -Linux环境及软件版本介绍
    • 1-5 -Spark版本升级
  • 第2章 初识实时流处理

    本章节将从一个业务场景分析出发引出实时流处理的产生背景,对比离线处理和实时处理的区别,了解常用的实时流处理框架有哪些,实时流处理在企业级应用中各个环节的架构以及技术选型

    • 2-1 -课程目录
    • 2-2 -业务现状分析
    • 2-3 -实时流处理产生背景
    • 2-4 -实时流处理概述
    • 2-5 -离线计算和实时计算对比
    • 2-6 -实时流处理框架对比
    • 2-7 -实时流处理架构及技术选型
    • 2-8 -实时流处理在企业中的应用
  • 第3章 分布式日志收集框架Flume

    本章节将从通过一个业务场景出发引出Flume的产生背景,将讲解Flume的架构及核心组件,Flume环境部署以及Flume Agent开发实战让大家学会如何使用Flume来进行日志的采集

    • 3-1 -课程目录
    • 3-2 -业务现状分析
    • 3-3 -Flume概述
    • 3-4 -Flume架构及核心组件
    • 3-5 -Flume&JDK环境部署
    • 3-6 -Flume实战案例一
    • 3-7 -Flume实战案例二
    • 3-8 -Flume实战案例三(重点掌握)
  • 第4章 分布式发布订阅消息系统Kafka

    本章节将讲解Kafka的架构以及核心概念,Kafka环境的部署及脚本的使用,Kafka API编程,并通过Kafka容错性测试让大家体会到Kakfa的高可用性,并将Flume和Kafka整合起来开发一个功能

    • 4-1 -课程目录
    • 4-2 -Kafka概述
    • 4-3 -Kafka架构及核心概念
    • 4-4 -Kafka单节点单Broker部署之Zookeeper安装
    • 4-5 -Kafka单节点单broker的部署及使用
    • 4-6 -Kafka单节点多broker部署及使用
    • 4-7 -Kafka容错性测试
    • 4-8 -使用IDEA+Maven构建开发环境
    • 4-9 -Kafka Producer Java API编程
    • 4-10 -Kafka Consumer Java API编程
    • 4-11 -Kafka实战之整合Flume和Kafka完成实时数据采集
  • 第5章 实战环境搭建

    工欲善其事必先利其器,本章将讲解Hadoop、ZooKeeper、HBase、Spark的安装,以及如何使用IDEA整合Maven/Spark/HBase/Hadoop来搭建我们的开发环境

    • 5-1 -课程目录
    • 5-2 -Scala安装
    • 5-3 -Maven安装
    • 5-4 -Hadoop环境搭建
    • 5-5 -HBase安装
    • 5-6 -Spark环境搭建
    • 5-7 -开发环境搭建
  • 第6章 Spark Streaming入门

    本章节将讲解Spark Streaming是什么,了解Spark Streaming的应用场景及发展史,并从词频统计案例入手带大家了解Spark Streaming的工作原理

    • 6-1 -课程目录
    • 6-2 -Spark Streaming概述
    • 6-3 -Spark Streaming应用场景
    • 6-4 -Spark Streaming集成Spark生态系统的使用
    • 6-5 -Spark Streaming发展史
    • 6-6 -从词频统计功能着手入门Spark Streaming
    • 6-7 -Spark Streaming工作原理(粗粒度)
    • 6-8 -Spark Streaming工作原理(细粒度)
  • 第7章 Spark Streaming核心概念与编程

    本章节将讲解Spark Streaming中的核心概念、常用操作,通过Spark Streaming如何操作socket以及HDFS上的数据让大家进一步了解Spark Streaming的编程

    • 7-1 -课程目录
    • 7-2 -核心概念之StreamingContext
    • 7-3 -核心概念之DStream
    • 7-4 -核心概念之Input DStreams和Receivers
    • 7-5 -核心概念之Transformation和Output Operations
    • 7-6 -案例实战之Spark Streaming处理socket数据
    • 7-7 -案例实战之Spark Streaming处理文件系统数据
  • 第8章 Spark Streaming进阶与案例实战

    本章节将讲解Spark Streaming如何处理带状态的数据,通过案例让大家知道Spark Streaming如何写数据到MySQL,Spark Streaming如何整合Spark SQL进行操作

    • 8-1 -课程目录
    • 8-2 -实战之updateStateByKey算子的使用
    • 8-3 -实战之将统计结果写入到MySQL数据库中
    • 8-4 -实战之窗口函数的使用
    • 8-5 -实战之黑名单过滤
    • 8-6 -实战之Spark Streaming整合Spark SQL操作
  • 第9章 Spark Streaming整合Flume

    本章节将讲解Spark Streaming整合Flume的两种方式,讲解如何在本地进行开发测试,如何在服务器上进行测试

    • 9-1 -课程目录
    • 9-2 -Push方式整合之概述
    • 9-3 -Push方式整合之Flume Agent配置开发
    • 9-4 -Push方式整合之Spark Streaming应用开发
    • 9-5 -Push方式整合之本地环境联调
    • 9-6 -Push方式整合之服务器环境联调
    • 9-7 -Pull方式整合之概述
    • 9-8 -Pull方式整合之Flume Agent配置开发
    • 9-9 -Pull方式整合之Spark Streaming应用开发
    • 9-10 -Pull方式整合之本地环境联调
    • 9-11 -Pull方式整合之服务器环境联调
  • 第10章 Spark Streaming整合Kafka

    本章节将讲解Spark Streaming整合Kafka的两种方式,讲解如何在本地进行开发测试,如何在服务器上进行测试

    • 10-1 -课程目录
    • 10-2 -Spark Streaming整合Kafka的版本选择详解
    • 10-3 -Receiver方式整合之概述
    • 10-4 -Receiver方式整合之Kafka测试
    • 10-5 -Receiver方式整合之Spark Streaming应用开发
    • 10-6 -Receiver方式整合之本地环境联调
    • 10-7 -Receiver方式整合之服务器环境联调及Streaming UI讲解
    • 10-8 -Direct方式整合之概述
    • 10-9 -Direct方式整合之Spark Streaming应用开发及本地环境测试
    • 10-10 -Direct方式整合之服务器环境联调
  • 第11章 Spark Streaming整合Flume&Kafka打造通用流处理基础

    本章节将通过实战案例彻底打通Spark Streaming和Flume以及Kafka的综合使用,为后续项目实战打下坚实的基础

    • 11-1 -课程目录
    • 11-2 -处理流程画图剖析
    • 11-3 -日志产生器开发并结合log4j完成日志的输出
    • 11-4 -使用Flume采集Log4j产生的日志
    • 11-5 -使用KafkaSInk将Flume收集到的数据输出到Kafka
    • 11-6 -Spark Streaming消费Kafka的数据进行统计
    • 11-7 -本地测试和生产环境使用的拓展
  • 第12章 Spark Streaming项目实战

    本章节将通过一个完整的项目实战让大家学会大数据实时流处理的各个环境的整合,如何根据业务需要来设计HBase的rowkey

    • 12-1 -课程目录
    • 12-2 -需求说明
    • 12-3 -用户行为日志介绍
    • 12-4 -Python日志产生器开发之产生访问url和ip信息
    • 12-5 -Python日志产生器开发之产生referer和状态码信息
    • 12-6 -Python日志产生器开发之产生日志访问时间
    • 12-7 -Python日志产生器服务器测试并将日志写入到文件中
    • 12-8 -通过定时调度工具每一分钟产生一批数据
    • 12-9 -使用Flume实时收集日志信息
    • 12-10 -对接实时日志数据到Kafka并输出到控制台测试
    • 12-11 -Spark Streaming对接Kafka的数据进行消费
    • 12-12 -使用Spark Streaming完成数据清洗操作
    • 12-13 -功能一之需求分析及存储结果技术选型分析
    • 12-14 -功能一之数据库访问DAO层方法定义
    • 12-15 -功能一之HBase操作工具类开发
    • 12-16 -功能一之数据库访问DAO层方法实现
    • 12-17 -功能一之将Spark Streaming的处理结果写入到HBase中
    • 12-18 -功能二之需求分析及HBase设计&HBase数据访问层开发
    • 12-19 -功能二之功能实现及本地测试
    • 12-20 -将项目运行在服务器环境中
  • 第13章 可视化实战

    本章节将通过两种方式来实现实时流处理结果的可视化操作,一是使用Spring Boot整合Echarts实现,二是使用更加炫酷的阿里云产品DataV来实现

    • 13-1 -课程目录
    • 13-2 -为什么需要可视化
    • 13-3 -构建Spring Boot项目
    • 13-4 -Echarts概述
    • 13-5 -Spring Boot整合Echarts绘制静态数据柱状图
    • 13-6 -Spring Boot整合Echarts绘制静态数据饼图
    • 13-7 -项目目录调整
    • 13-8 -根据天来获取HBase表中的实战课程访问次数
    • 13-9 -实战课程访问量domain以及dao开发
    • 13-10 -实战课程访问量Web层开发
    • 13-11 -实战课程访问量实时查询展示功能实现及扩展
    • 13-12 -Spring Boot项目部署到服务器上运行
    • 13-13 -阿里云DataV数据可视化介绍
    • 13-14 -DataV展示统计结果功能实现
  • 第14章 Java拓展

    本章节作为扩展内容,将带领大家使用Java来开始Spark应用程序,使得大家对于使用Scala以及Java来开发Spark应用程序都有很好的认识

    • 14-1 -课程目录
    • 14-2 -使用Java开发Spark应用程序
    • 14-3 -使用Java开发Spark Streaming应用程序

    感谢来自@akashi_sai 的投稿!!