├── docs ├── .nojekyll ├── study │ ├── 分布式策略 │ │ ├── SkyWalking学习笔记.md │ │ ├── 分布式策略-杂记.md │ │ ├── README.md │ │ └── _sidebar.md │ ├── Spring │ │ ├── Spring回顾复习.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── SpringMVC杂记.md │ │ └── Spring杂记.md │ ├── Scala │ │ ├── 《Scala语言规范》-学习笔记.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── Scala杂记.md │ ├── CICD │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── jenkins杂记.md │ ├── React │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 官方入门教程学习.md │ ├── Docker │ │ ├── README.md │ │ └── _sidebar.md │ ├── Python │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── res │ │ │ └── img │ │ │ │ ├── Python5.2.3-1.png │ │ │ │ ├── Python5.2.3-2.png │ │ │ │ └── Python5.3.1-1.png │ │ ├── Intro to Machine Learning--Kaggle.md │ │ └── Machine-learning.md │ ├── 推荐系统 │ │ ├── 《机器学习实战》-粗略读书笔记.md │ │ ├── 协同过滤算法实战之电影推荐-学习笔记.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── 推荐系统学习-杂记.md │ │ └── 推荐系统项目实战.md │ ├── 通用架构知识 │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── IT老齐-视频学习笔记.md │ ├── BigData │ │ ├── Spark │ │ │ └── 《(林子雨)Spark编程基础(Scala版)》-学习笔记.md │ │ ├── Hive │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── HBase │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── Hadoop │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ └── Hadoop官方教程笔记.md │ │ ├── Flink │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── ClickHouse │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── 理论 │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 杂 │ │ │ └── tmp.md │ ├── 编程思想 │ │ ├── README.md │ │ └── _sidebar.md │ ├── 计算广告 │ │ ├── README.md │ │ └── _sidebar.md │ ├── 负载均衡-代理 │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 负载均衡-代理-杂记.md │ ├── 文件管理 │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── FastDFS │ │ │ └── FastDFS杂记.md │ ├── 设计模式 │ │ ├── Head_First设计模式-读书笔记.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 设计模式-学习杂记.md │ ├── Vue │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── Vue源码学习.md │ │ ├── Vue笔记.md │ │ └── Vue随记.md │ ├── 领域特定语言DSL │ │ ├── README.md │ │ └── _sidebar.md │ ├── 计算机网络 │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 计算机网络杂记.md │ ├── Game-dev │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── GDScript基础-学习笔记.md │ │ └── Godot(官方教程)-学习笔记.md │ ├── DataBase │ │ ├── MongoDB │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ └── MongoDB夯实基础视频-学习笔记.md │ │ ├── Redis │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ ├── 《Redis设计与实现(第二版)》-读书笔记.md │ │ │ └── 2020最新Redis完整教程[千锋南京]-学习笔记.md │ │ ├── DB-Connection-Pool │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── DatabaseSystem-Design │ │ │ ├── README.md │ │ │ └── _sidebar.md │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── MySQL │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ ├── 尚硅谷_Mycat视频教程-学习笔记.md │ │ │ └── mysql杂笔记.md │ ├── APM │ │ ├── _sidebar.md │ │ ├── README.md │ │ └── SkyWalking │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ └── SkyWalking8.7.0源码分析-学习笔记.md │ ├── kubernetes │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── [kubernetes入门]快速了解和上手容器编排工具k8s-学习记录.md │ ├── Elastic-Stack │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── LogStash-杂记.md │ │ └── Elastic Stack(ELK)从入门到实践-学习笔记.md │ ├── SpringCloud │ │ ├── SpringCloud视频教程-蚂蚁课堂-学习笔记.md │ │ ├── SpringCloud杂记.md │ │ ├── README.md │ │ └── _sidebar.md │ ├── 网络安全 │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── 加密解密 │ │ │ └── 加密解密杂谈.md │ │ ├── XSS │ │ │ └── Web安全-XSS教程.md │ │ └── SSO │ │ │ └── CAS学习杂记.md │ ├── Linux │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── Linux知识-学习笔记.md │ │ └── Shell学习.md │ ├── Android │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── Android开发基础教程(2019)学习笔记.md │ ├── Rust │ │ ├── README.md │ │ └── _sidebar.md │ ├── 编程范式(ProgrammingParadigm) │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── POP(PluginOrientedProgramming) │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ └── POP杂记.md │ ├── GoLang │ │ ├── README.md │ │ └── _sidebar.md │ ├── MQ │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── SpringBoot_Docker_RabbitMQ消息队列场景架构实战-学习笔记.md │ ├── 操作系统和硬件 │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── 计算机体系结构-量化研究方法(第六版)-学习笔记.md │ │ └── 操作系统和硬件-杂记.md │ ├── SpringBoot │ │ ├── README.md │ │ ├── _sidebar.md │ │ ├── SpringBoot单元测试demo项目.md │ │ ├── SpringBoot蚂蚁课堂-学习笔记.md │ │ └── SpringBoot学习杂记.md │ ├── LeetCode_Study │ │ ├── README.md │ │ ├── 数据结构与算法 │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ ├── 递归.md │ │ │ ├── 二叉搜索树.md │ │ │ └── 二叉树.md │ │ ├── _sidebar.md │ │ ├── 初级算法 │ │ │ ├── README.md │ │ │ ├── _sidebar.md │ │ │ ├── 初级算法-排序和搜索.md │ │ │ ├── 初级算法-设计问题.md │ │ │ └── 初级算法-数学.md │ │ ├── 中级算法 │ │ │ ├── _sidebar.md │ │ │ ├── README.md │ │ │ ├── 中级算法-设计问题.md │ │ │ └── 中级算法-链表.md │ │ ├── 高级算法 │ │ │ ├── _sidebar.md │ │ │ ├── README.md │ │ │ └── 高级算法-数学.md │ │ └── 程序员面试金典 │ │ │ └── 程序员面试金典.md │ ├── C │ │ └── C语言杂记.md │ ├── Netty │ │ ├── README.md │ │ ├── _sidebar.md │ │ └── 个人Netty实战笔记.md │ └── Java │ │ ├── README.md │ │ └── _sidebar.md ├── _navbar.md ├── _coverpage.md ├── style.css ├── _sidebar.md ├── index.html └── README.md └── .gitignore /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.DS_Store 2 | -------------------------------------------------------------------------------- /docs/study/分布式策略/SkyWalking学习笔记.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/study/Spring/Spring回顾复习.md: -------------------------------------------------------------------------------- 1 | # Spring回顾复习 2 | 3 | -------------------------------------------------------------------------------- /docs/_navbar.md: -------------------------------------------------------------------------------- 1 | * [导读](/README.md) 2 | * [首页](/) 3 | 4 | -------------------------------------------------------------------------------- /docs/study/Scala/《Scala语言规范》-学习笔记.md: -------------------------------------------------------------------------------- 1 | # 《Scala语言规范》-学习笔记 2 | 3 | -------------------------------------------------------------------------------- /docs/study/CICD/README.md: -------------------------------------------------------------------------------- 1 | # CICD 2 | 3 | ## 目录 4 | 5 | * [jenkins杂记](/study/CICD/jenkins杂记) -------------------------------------------------------------------------------- /docs/study/React/README.md: -------------------------------------------------------------------------------- 1 | # React 2 | 3 | ## 目录 4 | 5 | * [官方入门教程学习](/study/React/官方入门教程学习) -------------------------------------------------------------------------------- /docs/study/Docker/README.md: -------------------------------------------------------------------------------- 1 | # Docker 2 | 3 | ## 目录 4 | 5 | * [Docker杂学记录](/study/Docker/Docker杂学记录) -------------------------------------------------------------------------------- /docs/study/Python/README.md: -------------------------------------------------------------------------------- 1 | # Python 2 | 3 | ## 目录 4 | 5 | * [Python数据处理](/study/Python/python数据处理) -------------------------------------------------------------------------------- /docs/study/推荐系统/《机器学习实战》-粗略读书笔记.md: -------------------------------------------------------------------------------- 1 | # 《机器学习实战》-粗略读书笔记 2 | 3 | > 为推荐系统的搭建做准备,时间比较紧迫,暂时不细读了。 4 | 5 | -------------------------------------------------------------------------------- /docs/study/通用架构知识/README.md: -------------------------------------------------------------------------------- 1 | # 通用架构知识 2 | 3 | ## 目录 4 | 5 | * [IT老齐-视频学习笔记](/study/通用架构知识/IT老齐-视频学习笔记) -------------------------------------------------------------------------------- /docs/study/BigData/Spark/《(林子雨)Spark编程基础(Scala版)》-学习笔记.md: -------------------------------------------------------------------------------- 1 | # 《(林子雨)Spark编程基础(Scala版)》-学习笔记 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/study/编程思想/README.md: -------------------------------------------------------------------------------- 1 | # 操作系统和硬件 2 | 3 | ## 目录 4 | 5 | * [《代码大全2》-读书笔记](/study/编程思想/《代码大全2》-读书笔记) 6 | -------------------------------------------------------------------------------- /docs/study/计算广告/README.md: -------------------------------------------------------------------------------- 1 | # 计算广告 2 | 3 | ## 目录 4 | 5 | * [计算广告(网易云课堂)-学习笔记](/study/计算广告/计算广告(网易云课堂)-学习笔记) -------------------------------------------------------------------------------- /docs/study/负载均衡-代理/README.md: -------------------------------------------------------------------------------- 1 | # 负载均衡-代理 2 | 3 | ## 目录 4 | 5 | * [负载均衡-代理-杂记](/study/负载均衡-代理/负载均衡-代理-杂记) -------------------------------------------------------------------------------- /docs/study/Scala/README.md: -------------------------------------------------------------------------------- 1 | # Scala 2 | 3 | ## 目录 4 | 5 | * [Scala菜鸟教程学习](/study/Scala/Scala菜鸟教程学习) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/文件管理/README.md: -------------------------------------------------------------------------------- 1 | # 文件管理 2 | 3 | ## 目录 4 | 5 | * [FastDFS](/study/文件管理/FastDFS/FastDFS杂记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/设计模式/Head_First设计模式-读书笔记.md: -------------------------------------------------------------------------------- 1 | # Head_First设计模式-读书笔记 2 | 3 | > 趁着稍微有点时间,系统过一遍这个关于设计模式的经典书籍。 4 | 5 | -------------------------------------------------------------------------------- /docs/study/BigData/Hive/README.md: -------------------------------------------------------------------------------- 1 | # Hive 2 | 3 | ## 目录 4 | 5 | * [Hive-学习笔记](/study/BigData/Hive/Hive学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/Vue/README.md: -------------------------------------------------------------------------------- 1 | # Vue 2 | 3 | ## 目录 4 | 5 | * [Vue源码学习](/study/Vue/Vue源码学习) 6 | * [Vue随记](/study/Vue/Vue随记) -------------------------------------------------------------------------------- /docs/study/BigData/HBase/README.md: -------------------------------------------------------------------------------- 1 | # HBase 2 | 3 | ## 目录 4 | 5 | * [HBase-学习笔记](/study/BigData/HBase/HBase学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/领域特定语言DSL/README.md: -------------------------------------------------------------------------------- 1 | # 领域特定语言DSL 2 | 3 | ## 目录 4 | 5 | * [《领域特定语言》-读书笔记](/study/领域特定语言DSL/《领域特定语言》-读书笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/推荐系统/协同过滤算法实战之电影推荐-学习笔记.md: -------------------------------------------------------------------------------- 1 | # 协同过滤算法实战之电影推荐-学习笔记 2 | 3 | > [协同过滤算法实战之电影推荐](https://www.ipieuvre.com/course/326) 4 | 5 | -------------------------------------------------------------------------------- /docs/study/计算机网络/README.md: -------------------------------------------------------------------------------- 1 | # 计算机网络 2 | 3 | ## 目录 4 | 5 | * [计算机网络复习](/study/计算机网络/计算机网络复习) 6 | * [计算机网络杂记](/study/计算机网络/计算机网络杂记) -------------------------------------------------------------------------------- /docs/study/CICD/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [jenkins杂记](/study/CICD/jenkins杂记) -------------------------------------------------------------------------------- /docs/study/Game-dev/README.md: -------------------------------------------------------------------------------- 1 | # Game-dev(游戏开发) 2 | 3 | ## 目录 4 | 5 | * [Godot(官方教程)-学习笔记](/study/Game-devk/Godot(官方教程)-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/React/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [官方入门教程学习](/study/React/官方入门教程学习) -------------------------------------------------------------------------------- /docs/study/Docker/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Docker杂学记录](/study/Docker/Docker杂学记录) -------------------------------------------------------------------------------- /docs/study/Python/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Python数据处理](/study/Python/python数据处理) -------------------------------------------------------------------------------- /docs/study/Python/res/img/Python5.2.3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashiamd/docsify-notes/HEAD/docs/study/Python/res/img/Python5.2.3-1.png -------------------------------------------------------------------------------- /docs/study/Python/res/img/Python5.2.3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashiamd/docsify-notes/HEAD/docs/study/Python/res/img/Python5.2.3-2.png -------------------------------------------------------------------------------- /docs/study/Python/res/img/Python5.3.1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashiamd/docsify-notes/HEAD/docs/study/Python/res/img/Python5.3.1-1.png -------------------------------------------------------------------------------- /docs/study/Spring/README.md: -------------------------------------------------------------------------------- 1 | # Spring 2 | 3 | ## 目录 4 | 5 | * [Spring回顾复习](/study/Spring/Spring回顾复习) 6 | * [Spring杂记](/study/Spring/Spring杂记) -------------------------------------------------------------------------------- /docs/study/文件管理/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [FastDFS](/study/文件管理/FastDFS/FastDFS杂记) -------------------------------------------------------------------------------- /docs/study/负载均衡-代理/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [负载均衡-代理-杂记](/study/负载均衡-代理/负载均衡-代理-杂记) -------------------------------------------------------------------------------- /docs/study/BigData/Hadoop/README.md: -------------------------------------------------------------------------------- 1 | # Hadoop 2 | 3 | ## 目录 4 | 5 | * [分布式大数据框架Hadoop-学习笔记](/study/BigData/Hadoop/分布式大数据框架Hadoop-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/DataBase/MongoDB/README.md: -------------------------------------------------------------------------------- 1 | # MongoDB 2 | 3 | ## 目录 4 | 5 | * [MongoDB夯实基础视频-学习笔记](/study/DataBase/MongoDB/MongoDB夯实基础视频-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/APM/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [SkyWalking](/study/APM/SkyWalking/README) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/Scala/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Scala菜鸟教程学习](/study/Scala/Scala菜鸟教程学习) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/编程思想/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [《代码大全2》-读书笔记](/study/编程思想/《代码大全2》-读书笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/通用架构知识/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [IT老齐-视频学习笔记](/study/通用架构知识/IT老齐-视频学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/DataBase/Redis/README.md: -------------------------------------------------------------------------------- 1 | # Redis 2 | 3 | ## 目录 4 | 5 | * [2020最新Redis完整教程[千锋南京]-学习笔记](/study/DataBase/Redis/2020最新Redis完整教程[千锋南京]-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/推荐系统/README.md: -------------------------------------------------------------------------------- 1 | # 推荐系统 2 | 3 | ## 目录 4 | 5 | * [《推荐系统实践》-粗略读书笔记](/study/推荐系统/《推荐系统实践》-粗略读书笔记) 6 | * [推荐系统项目实战](/study/推荐系统/推荐系统项目实战) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/计算广告/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [计算广告(网易云课堂)-学习笔记](/study/计算广告/计算广告(网易云课堂)-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/Vue/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Vue源码学习](/study/Vue/Vue源码学习) 5 | * [Vue随记](/study/Vue/Vue随记) -------------------------------------------------------------------------------- /docs/study/kubernetes/README.md: -------------------------------------------------------------------------------- 1 | # kubernetes 2 | 3 | ## 目录 4 | 5 | * [【kubernetes入门】快速了解和上手容器编排工具k8s-学习记录](/study/kubernetes/[kubernetes入门]快速了解和上手容器编排工具k8s-学习记录) -------------------------------------------------------------------------------- /docs/study/领域特定语言DSL/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [《领域特定语言》-读书笔记](/study/领域特定语言DSL/《领域特定语言》-读书笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/DataBase/DB-Connection-Pool/README.md: -------------------------------------------------------------------------------- 1 | # DB-Connection-Pool 2 | 3 | ## 目录 4 | 5 | * [HikariCP学习笔记](/study/DataBase/DB-Connection-Pool/HikariCP学习笔记) 6 | -------------------------------------------------------------------------------- /docs/study/Elastic-Stack/README.md: -------------------------------------------------------------------------------- 1 | # Elastic-Stack 2 | 3 | ## 目录 4 | 5 | * [Elastic-Stack(7.9官方文档)-学习笔记](/study/Elastic-Stack/Elastic-Stack(7.9官方文档)-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/Game-dev/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Godot(官方教程)-学习笔记](/study/Game-devk/Godot(官方教程)-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/APM/README.md: -------------------------------------------------------------------------------- 1 | # APM 2 | 3 | application performance monitor 4 | 5 | ## 目录 6 | 7 | * [SkyWalking](/study/APM/SkyWalking/README) 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/study/APM/SkyWalking/README.md: -------------------------------------------------------------------------------- 1 | # SkyWalking 2 | 3 | ## 目录 4 | 5 | * [SkyWalking8.7.0源码分析-学习笔记](/study/APM/SkyWalking/SkyWalking8.7.0源码分析-学习笔记) 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/study/BigData/Hive/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/BigData/README) 4 | * [Hive-学习笔记](/study/BigData/Hive/Hive学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/计算机网络/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [计算机网络复习](/study/计算机网络/计算机网络复习) 5 | * [计算机网络杂记](/study/计算机网络/计算机网络杂记) -------------------------------------------------------------------------------- /docs/study/BigData/HBase/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [HBase-学习笔记](/study/BigData/HBase/HBase学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/SpringCloud/SpringCloud视频教程-蚂蚁课堂-学习笔记.md: -------------------------------------------------------------------------------- 1 | # SpringCloud视频教程-蚂蚁课堂 2 | 3 | > 教程视频链接http://www.mayikt.com/course/video/2349 4 | 5 | ## 第一章 互联网网站架构演变过程 6 | 7 | -------------------------------------------------------------------------------- /docs/study/网络安全/README.md: -------------------------------------------------------------------------------- 1 | # 网络安全 2 | 3 | ## 目录 4 | 5 | * [OAuth](/study/网络安全/OAuth/OAuth学习杂记) 6 | * [XSS](/study/网络安全/XSS/Web安全-XSS教程) 7 | * [加密解密](/study/网络安全/加密解密/加密解密杂谈) -------------------------------------------------------------------------------- /docs/study/Linux/README.md: -------------------------------------------------------------------------------- 1 | # Linux 2 | 3 | ## 目录 4 | 5 | * [Shell](/study/Linux/Shell学习) 6 | * [Shell编程复习](/study/Linux/Shell编程复习) 7 | * [Linux知识-学习笔记](/study/Linux/Linux知识-学习笔记) -------------------------------------------------------------------------------- /docs/study/Spring/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Spring回顾复习](/study/Spring/Spring回顾复习) 5 | * [Spring杂记](/study/Spring/Spring杂记) -------------------------------------------------------------------------------- /docs/study/推荐系统/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [《推荐系统实践》-粗略读书笔记](/study/推荐系统/《推荐系统实践》-粗略读书笔记) 5 | * [推荐系统项目实战](/study/推荐系统/推荐系统项目实战) -------------------------------------------------------------------------------- /docs/study/Android/README.md: -------------------------------------------------------------------------------- 1 | # Android 2 | 3 | ## 目录 4 | 5 | * [Android开发基础教程(2019)学习笔记](/study/Android/Android开发基础教程(2019)学习笔记) 6 | * [W3c_Android基础入门教程](/study/Android/W3c_Android基础入门教程) -------------------------------------------------------------------------------- /docs/study/BigData/Flink/README.md: -------------------------------------------------------------------------------- 1 | # Flink 2 | 3 | ## 目录 4 | 5 | * [Flink-学习笔记](/study/BigData/Flink/Flink学习笔记) 6 | * [尚硅谷Flink入门到实战-学习笔记](/study/BigData/Flink/尚硅谷Flink入门到实战-学习笔记) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/BigData/Hadoop/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/BigData/README) 4 | * [分布式大数据框架Hadoop-学习笔记](/study/BigData/Hadoop/分布式大数据框架Hadoop-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/kubernetes/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [【kubernetes入门】快速了解和上手容器编排工具k8s-学习记录](/study/kubernetes/[kubernetes入门]快速了解和上手容器编排工具k8s-学习记录) -------------------------------------------------------------------------------- /docs/study/分布式策略/分布式策略-杂记.md: -------------------------------------------------------------------------------- 1 | # 分布式策略杂记 2 | 3 | ## 1. 数据库 4 | 5 | ### 1. 唯一键 6 | 7 | #### 1. 雪花算法 8 | 9 | > [雪花算法和几个工具类](https://blog.csdn.net/weixin_43934607/article/details/102301364) -------------------------------------------------------------------------------- /docs/study/DataBase/MongoDB/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [MongoDB夯实基础视频-学习笔记](/study/DataBase/MongoDB/MongoDB夯实基础视频-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/Rust/README.md: -------------------------------------------------------------------------------- 1 | # Rust 2 | 3 | ## 目录 4 | 5 | * [Rust-菜鸟教程-学习笔记](/study/Rust/Rust-菜鸟教程-学习笔记) 6 | * [The Rust Programming Language - 学习笔记](/study/Rust/TheRustProgrammingLanguage-学习笔记) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/APM/SkyWalking/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/APM/README) 4 | * [SkyWalking8.7.0源码分析-学习笔记](/study/APM/SkyWalking/SkyWalking8.7.0源码分析-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/Elastic-Stack/_sidebar.md: -------------------------------------------------------------------------------- 1 | * 2 | * **目录** 3 | * [根目录(/)](/README) 4 | * [回到上一级(../)](/README) 5 | * [Elastic-Stack(7.9官方文档)-学习笔记](/study/Elastic-Stack/Elastic-Stack(7.9官方文档)-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/设计模式/README.md: -------------------------------------------------------------------------------- 1 | # 设计模式 2 | 3 | ## 目录 4 | 5 | * [设计模式-学习杂记](/study/设计模式/设计模式-学习杂记) 6 | * [2019尚硅谷Java设计模式-学习笔记](/study/设计模式/2019尚硅谷Java设计模式-学习笔记) 7 | * [设计模式_菜鸟教程-学习笔记](/study/设计模式/设计模式_菜鸟教程-学习笔记) -------------------------------------------------------------------------------- /docs/study/DataBase/DB-Connection-Pool/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [HikariCP学习笔记](/study/DataBase/DB-Connection-Pool/HikariCP学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/DataBase/Redis/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [2020最新Redis完整教程[千锋南京]-学习笔记](/study/DataBase/Redis/2020最新Redis完整教程[千锋南京]-学习笔记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/SpringCloud/SpringCloud杂记.md: -------------------------------------------------------------------------------- 1 | # SpringCloud杂记 2 | 3 | # 1. 学习的网课 4 | 5 | > [2023最新Spring Cloud Alibaba零基础入门教程(一套轻松搞定微服务架构)](https://www.bilibili.com/video/BV1v8411K7Y7?p=1) => 适合大致了解一遍相关的组件,之前抽空简单过了一遍 -------------------------------------------------------------------------------- /docs/study/编程范式(ProgrammingParadigm)/README.md: -------------------------------------------------------------------------------- 1 | # 编程范式(ProgrammingParadigm) 2 | 3 | ## 目录 4 | 5 | * [POP(PluginOrientedProgramming)](/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/README) 6 | -------------------------------------------------------------------------------- /docs/study/编程范式(ProgrammingParadigm)/_sidebar.md: -------------------------------------------------------------------------------- 1 | **目录** 2 | 3 | * [根目录(/)](/README) 4 | * [回到上一级(../)](/README) 5 | * [POP(PluginOrientedProgramming)](/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/README) -------------------------------------------------------------------------------- /docs/study/网络安全/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [OAuth](/study/网络安全/OAuth/OAuth学习杂记) 5 | * [XSS](/study/网络安全/XSS/Web安全-XSS教程) 6 | * [加密解密](/study/网络安全/加密解密/加密解密杂谈) -------------------------------------------------------------------------------- /docs/study/通用架构知识/IT老齐-视频学习笔记.md: -------------------------------------------------------------------------------- 1 | # IT老齐-视频学习笔记 2 | 3 | > [【IT老齐001】聊一聊被培训机构神话的架构师](https://www.bilibili.com/video/BV1WM4y1N79G) 4 | > 5 | > 通过学习B站up主[IT老齐](https://space.bilibili.com/359351574)的视频,做一些学习笔记(可能额外补充一些自己查询的资料等) -------------------------------------------------------------------------------- /docs/study/Linux/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Shell](/study/Linux/Shell学习) 5 | * [Shell编程复习](/study/Linux/Shell编程复习) 6 | * [Linux知识-学习笔记](/study/Linux/Linux知识-学习笔记) -------------------------------------------------------------------------------- /docs/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/README.md: -------------------------------------------------------------------------------- 1 | # POP(PluginOrientedProgramming) 2 | 3 | ## 目录 4 | 5 | * [POP杂记](/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/POP杂记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/Android/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Android开发基础教程(2019)学习笔记](/study/Android/Android开发基础教程(2019)学习笔记) 5 | * [W3c_Android基础入门教程](/study/Android/W3c_Android基础入门教程) -------------------------------------------------------------------------------- /docs/study/BigData/Flink/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/BigData/README) 4 | * [Flink-学习笔记](/study/BigData/Flink/Flink学习笔记) 5 | * [尚硅谷Flink入门到实战-学习笔记](/study/BigData/Flink/尚硅谷Flink入门到实战-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/Rust/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Rust-菜鸟教程-学习笔记](/study/Rust/Rust-菜鸟教程-学习笔记) 5 | * [The Rust Programming Language - 学习笔记](/study/Rust/TheRustProgrammingLanguage-学习笔记) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/Spring/SpringMVC杂记.md: -------------------------------------------------------------------------------- 1 | # SpringMVC杂记 2 | 3 | > [SpringMVC常见面试题总结(超详细回答)](https://blog.csdn.net/a745233700/article/details/80963758) 4 | > 5 | > [Struts2与MVC的区别](https://blog.csdn.net/weixin_34208283/article/details/93516392) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/DataBase/DatabaseSystem-Design/README.md: -------------------------------------------------------------------------------- 1 | # DatabaseSystem-Design 2 | 3 | ## 目录 4 | 5 | * [数据库系统内幕-学习笔记-01](/study/DataBase/DatabaseSystem-Design/数据库系统内幕-学习笔记-01) 6 | * [数据库系统内幕-学习笔记-02](/study/DataBase/DatabaseSystem-Design/数据库系统内幕-学习笔记-02) 7 | -------------------------------------------------------------------------------- /docs/study/Elastic-Stack/LogStash-杂记.md: -------------------------------------------------------------------------------- 1 | # LogStash-杂记 2 | 3 | # 1. LogStash能干啥 4 | 5 | > [Logstash](https://www.cnblogs.com/cjsblog/p/9459781.html) 6 | 7 | 充当管道pipeline,我们设定输入input、输入output以及过滤器filter后,LogStash就能完成从输入端获取数据并过滤,再将处理后的数据交给输出端。 8 | 9 | -------------------------------------------------------------------------------- /docs/study/分布式策略/README.md: -------------------------------------------------------------------------------- 1 | # 分布式策略 2 | 3 | ## 目录 4 | 5 | * [分布式策略-杂记](/study/分布式策略/分布式策略-杂记) 6 | * [gRPC-官方文档学习](/study/分布式策略/gRPC-官方文档学习) 7 | * [MIT6.824网课学习笔记-01](/study/分布式策略/MIT6.824网课学习笔记-01) 8 | * [MIT6.824网课学习笔记-02](/study/分布式策略/MIT6.824网课学习笔记-02) -------------------------------------------------------------------------------- /docs/study/设计模式/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [设计模式-学习杂记](/study/设计模式/设计模式-学习杂记) 5 | * [2019尚硅谷Java设计模式-学习笔记](/study/设计模式/2019尚硅谷Java设计模式-学习笔记) 6 | * [设计模式_菜鸟教程-学习笔记](/study/设计模式/设计模式_菜鸟教程-学习笔记) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/BigData/ClickHouse/README.md: -------------------------------------------------------------------------------- 1 | # ClickHouse 2 | 3 | ## 目录 4 | 5 | * [clickhouse原理解析与应用实践-学习笔记-01](/study/BigData/ClickHouse/clickhouse原理解析与应用实践-学习笔记-01) 6 | * [clickhouse原理解析与应用实践-学习笔记-02](/study/BigData/ClickHouse/clickhouse原理解析与应用实践-学习笔记-02) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/BigData/理论/README.md: -------------------------------------------------------------------------------- 1 | # 理论 2 | 3 | ## 目录 4 | 5 | * [数据密集型应用系统设计-学习笔记-01](/study/BigData/理论/数据密集型应用系统设计-学习笔记-01) 6 | * [数据密集型应用系统设计-学习笔记-02](/study/BigData/理论/数据密集型应用系统设计-学习笔记-02) 7 | * [数据密集型应用系统设计-学习笔记-03](/study/BigData/理论/数据密集型应用系统设计-学习笔记-03) 8 | 9 | -------------------------------------------------------------------------------- /docs/study/推荐系统/推荐系统学习-杂记.md: -------------------------------------------------------------------------------- 1 | # 推荐系统学习-杂记 2 | 3 | # 1. 推荐博客 4 | 5 | > [推荐系统入门-wenjiangs](https://www.wenjiangs.com/doc/5wwt33p7g) <= 偶然发现的一个博客网站,挺不错的 6 | > 7 | > [Introduction · 面向程序员的数据挖掘指南 (yourtion.com)](https://dataminingguide.books.yourtion.com/) => 和上面一样 8 | 9 | -------------------------------------------------------------------------------- /docs/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/编程范式(ProgrammingParadigm)/README) 4 | * [POP杂记](/study/编程范式(ProgrammingParadigm)/POP(PluginOrientedProgramming)/POP杂记) 5 | 6 | -------------------------------------------------------------------------------- /docs/study/GoLang/README.md: -------------------------------------------------------------------------------- 1 | # GoLang 2 | 3 | ## 目录 4 | 5 | * [go菜鸟教程-学习笔记](/study/GoLang/go菜鸟教程-学习笔记) 6 | * [《Go语言圣经》学习笔记-1](/study/GoLang/《Go语言圣经》学习笔记-1) 7 | * [《Go语言圣经》学习笔记-2](/study/GoLang/《Go语言圣经》学习笔记-2) 8 | * [《Go语言圣经》学习笔记-3](/study/GoLang/《Go语言圣经》学习笔记-3) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/分布式策略/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [分布式策略-杂记](/study/分布式策略/分布式策略-杂记) 5 | * [gRPC-官方文档学习](/study/分布式策略/gRPC-官方文档学习) 6 | * [MIT6.824网课学习笔记-01](/study/分布式策略/MIT6.824网课学习笔记-01) 7 | * [MIT6.824网课学习笔记-02](/study/分布式策略/MIT6.824网课学习笔记-02) -------------------------------------------------------------------------------- /docs/study/DataBase/DatabaseSystem-Design/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [数据库系统内幕-学习笔记-01](/study/DataBase/DatabaseSystem-Design/数据库系统内幕-学习笔记-01) 5 | * [数据库系统内幕-学习笔记-02](/study/DataBase/DatabaseSystem-Design/数据库系统内幕-学习笔记-02) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/SpringCloud/README.md: -------------------------------------------------------------------------------- 1 | # SpringCloud 2 | 3 | ## 目录 4 | 5 | * [SpringCloud最新教程IDEA版【狂神说Java系列】学习笔记](/study/SpringCloud/SpringCloud最新教程IDEA版[狂神说Java系列]-学习笔记) 6 | * [SpringCloud视频教程-蚂蚁课堂-学习笔记](/study/SpringCloud/SpringCloud视频教程-蚂蚁课堂-学习笔记) 7 | * [Sentinel官方文档-学习笔记](/study/SpringCloud/Sentinel官方文档-学习笔记) -------------------------------------------------------------------------------- /docs/_coverpage.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | # Ashiamd的个人MD笔记 4 | 5 | > 希望自己能够越学越好,哈哈 6 | 7 | * 😀💻🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛😶 8 | * 😶💻🕜🕝🕞🕟🕠🕡🕢🕣🕤🕥🕦🕧😪 9 | * 😪👀😎😟😤💪💪💪💻🌕🌗🌑🌞😪😴 10 | 11 | [开始阅读](README.md) 12 | [我的GitHub](https://github.com/Ashiamd/docsify-notes) -------------------------------------------------------------------------------- /docs/study/BigData/ClickHouse/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/BigData/README) 4 | * [clickhouse原理解析与应用实践-学习笔记-01](/study/BigData/ClickHouse/clickhouse原理解析与应用实践-学习笔记-01) 5 | * [clickhouse原理解析与应用实践-学习笔记-02](/study/BigData/ClickHouse/clickhouse原理解析与应用实践-学习笔记-02) 6 | 7 | -------------------------------------------------------------------------------- /docs/study/DataBase/README.md: -------------------------------------------------------------------------------- 1 | # DataBase 2 | 3 | ## 目录 4 | 5 | * [MySQL](/study/DataBase/MySQL/README) 6 | * [Redis](/study/DataBase/Redis/README) 7 | * [DatabaseSystem-Design](/study/DataBase/DatabaseSystem-Design/README) 8 | * [DB-Connection-Pool](/study/DataBase/DB-Connection-Pool/README) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/GoLang/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [go菜鸟教程-学习笔记](/study/GoLang/go菜鸟教程-学习笔记) 5 | * [《Go语言圣经》学习笔记-1](/study/GoLang/《Go语言圣经》学习笔记-1) 6 | * [《Go语言圣经》学习笔记-2](/study/GoLang/《Go语言圣经》学习笔记-2) 7 | * [《Go语言圣经》学习笔记-3](/study/GoLang/《Go语言圣经》学习笔记-3) 8 | 9 | -------------------------------------------------------------------------------- /docs/study/MQ/README.md: -------------------------------------------------------------------------------- 1 | # MQ 2 | 3 | ## 目录 4 | 5 | * [Kafka权威指南-学习笔记01](/study/MQ/Kafka权威指南-学习笔记01) 6 | * [Kafka权威指南-学习笔记02](/study/MQ/Kafka权威指南-学习笔记02) 7 | * [SpringBoot+Docker+RabbitMQ消息队列场景架构实战-学习笔记](/study/MQ/SpringBoot_Docker_RabbitMQ消息队列场景架构实战-学习笔记) 8 | * [Kafka学习笔记](/study/MQ/Kafka学习笔记) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/设计模式/设计模式-学习杂记.md: -------------------------------------------------------------------------------- 1 | # 设计模式-学习杂记 2 | 3 | > 之前根据网络上的文章,琐碎地算是把常用的几种设计模式都学习过了。但是没时间整理。 4 | > 5 | > 这里先挖个坑。之后再根据一些热门书籍系统复习下吧。 6 | 7 | ## 1. 委托模式 8 | 9 | > [委托模式](https://www.jianshu.com/p/e7a5f0e45862) 10 | 11 | ## ex 1. 面向对象设计之魂的六大原则 12 | 13 | > [面向对象设计之魂的六大原则](https://zhuanlan.zhihu.com/p/58092071) -------------------------------------------------------------------------------- /docs/study/BigData/理论/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/BigData/README) 4 | * [数据密集型应用系统设计-学习笔记-01](/study/BigData/理论/数据密集型应用系统设计-学习笔记-01) 5 | * [数据密集型应用系统设计-学习笔记-02](/study/BigData/理论/数据密集型应用系统设计-学习笔记-02) 6 | * [数据密集型应用系统设计-学习笔记-03](/study/BigData/理论/数据密集型应用系统设计-学习笔记-03) 7 | 8 | -------------------------------------------------------------------------------- /docs/study/操作系统和硬件/README.md: -------------------------------------------------------------------------------- 1 | # 操作系统和硬件 2 | 3 | ## 目录 4 | 5 | * [操作系统和硬件-杂记](/study/操作系统和硬件/操作系统和硬件-杂记) 6 | * [操作系统系统回顾](/study/操作系统和硬件/操作系统系统回顾) 7 | * [MIT6.S081网课学习笔记-01](/study/操作系统和硬件/MIT6.S081网课学习笔记-01) 8 | * [MIT6.S081网课学习笔记-02](/study/操作系统和硬件/MIT6.S081网课学习笔记-02) 9 | * [MIT6.S081网课学习笔记-03](/study/操作系统和硬件/MIT6.S081网课学习笔记-03) -------------------------------------------------------------------------------- /docs/study/BigData/README.md: -------------------------------------------------------------------------------- 1 | # BigData 2 | 3 | ## 目录 4 | 5 | * [理论](/study/BigData/理论/README) 6 | * [Hadoop](/study/BigData/Hadoop/README) 7 | * [HBase](/study/BigData/HBase/README) 8 | * [Hive](/study/BigData/Hive/README) 9 | * [Flink](/study/BigData/Flink/README) 10 | * [ClickHouse](/study/BigData/ClickHouse/README) 11 | 12 | -------------------------------------------------------------------------------- /docs/study/Vue/Vue源码学习.md: -------------------------------------------------------------------------------- 1 | # Vue源码学习 2 | 3 | > 之前暑假就看过了Vue官方文档,但是看归看,并不熟悉。 4 | > 5 | > 后面又找了B站的Vue教学视频。(https://www.bilibili.com/video/av59594689) 6 | > 7 | > 我与之对应的Vue学习笔记,比较杂乱,因为当时还没接触Typora,主要是截图+自己的一些记录、思考等https://github.com/Ashiamd/VueStudyNote 8 | > 9 | > 最近刚学习完,最后几个视频章节对Vue源码有一定的分析,打算自己实践一下,看看Vue的源码,学习下。(暂时未开工) 10 | 11 | -------------------------------------------------------------------------------- /docs/study/DataBase/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [MySQL](/study/DataBase/MySQL/README) 5 | * [Redis](/study/DataBase/Redis/README) 6 | * [DatabaseSystem-Design](/study/DataBase/DatabaseSystem-Design/README) 7 | * [DB-Connection-Pool](/study/DataBase/DB-Connection-Pool/README) 8 | 9 | -------------------------------------------------------------------------------- /docs/study/MQ/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Kafka权威指南-学习笔记01](/study/MQ/Kafka权威指南-学习笔记01) 5 | * [Kafka权威指南-学习笔记02](/study/MQ/Kafka权威指南-学习笔记02) 6 | * [SpringBoot+Docker+RabbitMQ消息队列场景架构实战-学习笔记](/study/MQ/SpringBoot_Docker_RabbitMQ消息队列场景架构实战-学习笔记) 7 | * [Kafka学习笔记](/study/MQ/Kafka学习笔记) -------------------------------------------------------------------------------- /docs/study/SpringCloud/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [SpringCloud最新教程IDEA版【狂神说Java系列】学习笔记](/study/SpringCloud/SpringCloud最新教程IDEA版[狂神说Java系列]-学习笔记) 5 | * [SpringCloud视频教程-蚂蚁课堂-学习笔记](/study/SpringCloud/SpringCloud视频教程-蚂蚁课堂-学习笔记) 6 | * [Sentinel官方文档-学习笔记](/study/SpringCloud/Sentinel官方文档-学习笔记) -------------------------------------------------------------------------------- /docs/study/SpringBoot/README.md: -------------------------------------------------------------------------------- 1 | # SpringBoot 2 | 3 | ## 目录 4 | 5 | * [SpringBoot单元测试demo项目](/study/SpringBoot/SpringBoot单元测试demo项目) 6 | * [SpringBoot蚂蚁课堂-学习笔记](/study/SpringBoot/SpringBoot蚂蚁课堂-学习笔记) 7 | * [SpringBoot最新教程IDEA版【狂神说Java系列】学习笔记](/study/SpringBoot/SpringBoot最新教程IDEA版_狂神说Java系列_-学习笔记) 8 | * [SpringBoot学习杂记](/study/SpringBoot/SpringBoot学习杂记) -------------------------------------------------------------------------------- /docs/study/操作系统和硬件/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [操作系统和硬件-杂记](/study/操作系统和硬件/操作系统和硬件-杂记) 5 | * [操作系统系统回顾](/study/操作系统和硬件/操作系统系统回顾) 6 | * [MIT6.S081网课学习笔记-01](/study/操作系统和硬件/MIT6.S081网课学习笔记-01) 7 | * [MIT6.S081网课学习笔记-02](/study/操作系统和硬件/MIT6.S081网课学习笔记-02) 8 | * [MIT6.S081网课学习笔记-03](/study/操作系统和硬件/MIT6.S081网课学习笔记-03) -------------------------------------------------------------------------------- /docs/study/BigData/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [理论](/study/BigData/理论/README) 5 | * [Hadoop](/study/BigData/Hadoop/README) 6 | * [HBase](/study/BigData/HBase/README) 7 | * [Hive](/study/BigData/Hive/README) 8 | * [Flink](/study/BigData/Flink/README) 9 | * [ClickHouse](/study/BigData/ClickHouse/README) 10 | 11 | -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/README.md: -------------------------------------------------------------------------------- 1 | # LeetCode 2 | 3 | ## 目录 4 | 5 | * [探索-初级算法](/study/LeetCode_Study/初级算法/README) 6 | * [探索-中级算法](/study/LeetCode_Study/中级算法/README) 7 | * [探索-高级算法](/study/LeetCode_Study/高级算法/README) 8 | * [剑指Offer](/study/LeetCode_Study/剑指Offer/剑指Offer) 9 | * [程序员面试金典](/study/LeetCode_Study/程序员面试金典/程序员面试金典) 10 | * [数据结构与算法](/study/LeetCode_Study/数据结构与算法/README) -------------------------------------------------------------------------------- /docs/study/SpringBoot/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [SpringBoot单元测试demo项目](/study/SpringBoot/SpringBoot单元测试demo项目) 5 | * [SpringBoot蚂蚁课堂-学习笔记](/study/SpringBoot/SpringBoot蚂蚁课堂-学习笔记) 6 | * [SpringBoot最新教程IDEA版【狂神说Java系列】学习笔记](/study/SpringBoot/SpringBoot最新教程IDEA版_狂神说Java系列_-学习笔记) 7 | * [SpringBoot学习杂记](/study/SpringBoot/SpringBoot学习杂记) -------------------------------------------------------------------------------- /docs/study/DataBase/MySQL/README.md: -------------------------------------------------------------------------------- 1 | # MySQL 2 | 3 | ## 目录 4 | 5 | * [mysql入门很简单系列视频-学习笔记](/study/DataBase/MySQL/mysql入门很简单系列视频-学习笔记) 6 | * [尚硅谷_Mycat视频教程-学习笔记](/study/DataBase/MySQL/尚硅谷_Mycat视频教程-学习笔记) 7 | * [MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01](/study/DataBase/MySQL/MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01) 8 | * [MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02](/study/DataBase/MySQL/MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/Game-dev/GDScript基础-学习笔记.md: -------------------------------------------------------------------------------- 1 | # GDScript基础-学习笔记 2 | 3 | > [GDScript - GDScript 基础 - 《Godot 游戏引擎 v3.5 中文文档》 - 书栈网 · BookStack](https://www.bookstack.cn/read/godot-3.5-zh/f9c328f5c1cf8c98.md) 4 | > 5 | > 以前学过JavaScript和Python,所以这里就不特地写全面的笔记了。 6 | 7 | 1. GDScript支持鸭子类型 8 | 9 | 2. GDScript继承Refrence的引用类型在计数为0时会自动释放,继承Object则需要手动管理内存 10 | 11 | 3. 一般开发时最基础的类只用到`RefCounted`,再往下的类需要手动内存管理,比较繁琐 12 | 4. -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/数据结构与算法/README.md: -------------------------------------------------------------------------------- 1 | # LeetCode-数据结构 2 | 3 | > https://leetcode-cn.com/leetbook/ 4 | 5 | ## 目录 6 | 7 | * [队列&栈](/study/LeetCode_Study/数据结构/队列&栈) 8 | * [链表](/study/LeetCode_Study/数据结构/链表) 9 | * [递归](/study/LeetCode_Study/数据结构/递归) 10 | * [二叉树](/study/LeetCode_Study/数据结构/二叉树) 11 | * [二叉搜索树](https://leetcode-cn.com/leetbook/detail/introduction-to-data-structure-binary-search-tree/) -------------------------------------------------------------------------------- /docs/study/C/C语言杂记.md: -------------------------------------------------------------------------------- 1 | # C语言杂记 2 | 3 | > 记录一些网上看到的不错的关于C语言的文章。 4 | 5 | # 1. 可见域和作用域 6 | 7 | > [**编译器的工作流程**](https://fishc.com.cn/forum.php?mod=viewthread&tid=78063&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571) 8 | > 9 | > [C 生存期,作用域和可见域](https://blog.csdn.net/weixin_41049188/article/details/103091365) 10 | > 11 | > [c语言中external,static关键字用法](https://www.cnblogs.com/fah936861121/p/6679915.html) 12 | 13 | -------------------------------------------------------------------------------- /docs/study/SpringBoot/SpringBoot单元测试demo项目.md: -------------------------------------------------------------------------------- 1 | # SpringBoot单元测试demo项目 2 | 3 | # 1. 项目介绍 4 | 5 | ## 1.1 git项目 6 | 7 | > [Ashiamd/ash_springboot_unit_test: SpringBoot JUnit unit test demo code using Mockito and PowerMock (github.com)](https://github.com/Ashiamd/ash_springboot_unit_test) 8 | 9 | ## 1.2 依赖介绍 10 | 11 | 编程语言:java (jdk17) 12 | 13 | 项目主要依赖项 14 | 15 | 16 | 17 | 18 | 19 | ## 1.3 maven依赖清单 20 | 21 | -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [探索-初级算法](/study/LeetCode_Study/初级算法/README) 5 | * [探索-中级算法](/study/LeetCode_Study/中级算法/README) 6 | * [探索-高级算法](/study/LeetCode_Study/高级算法/README) 7 | * [剑指Offer](/study/LeetCode_Study/剑指Offer/剑指Offer) 8 | * [程序员面试金典](/study/LeetCode_Study/程序员面试金典/程序员面试金典) 9 | * [数据结构与算法](/study/LeetCode_Study/数据结构与算法/README) -------------------------------------------------------------------------------- /docs/study/Netty/README.md: -------------------------------------------------------------------------------- 1 | # Netty 2 | 3 | ## 目录 4 | 5 | * [Netty学习](/study/Netty/Netty学习) 6 | * [个人Netty实战笔记](/study/Netty/个人Netty实战笔记) 7 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记1-6章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记1-6章) 8 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记7-9章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记7-9章) 9 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记10-12章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记10-12章) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/数据结构与算法/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/LeetCode_Study/README) 4 | * [队列&栈](/study/LeetCode_Study/数据结构/队列&栈) 5 | * [链表](/study/LeetCode_Study/数据结构/链表) 6 | * [递归](/study/LeetCode_Study/数据结构/递归) 7 | * [二叉树](/study/LeetCode_Study/数据结构/二叉树) 8 | * [二叉搜索树](https://leetcode-cn.com/leetbook/detail/introduction-to-data-structure-binary-search-tree/) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/DataBase/MySQL/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/DataBase/README) 4 | * [mysql入门很简单系列视频-学习笔记](/study/DataBase/MySQL/mysql入门很简单系列视频-学习笔记) 5 | * [尚硅谷_Mycat视频教程-学习笔记](/study/DataBase/MySQL/尚硅谷_Mycat视频教程-学习笔记) 6 | * [MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01](/study/DataBase/MySQL/MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01) 7 | * [MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02](/study/DataBase/MySQL/MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02) 8 | 9 | -------------------------------------------------------------------------------- /docs/study/Netty/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Netty学习](/study/Netty/Netty学习) 5 | * [个人Netty实战笔记](/study/Netty/个人Netty实战笔记) 6 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记1-6章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记1-6章) 7 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记7-9章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记7-9章) 8 | * [《Netty-Redis-ZooKeeper高并发实战》学习笔记10-12章](/study/Netty/《Netty-Redis-ZooKeeper高并发实战》学习笔记10-12章) 9 | 10 | -------------------------------------------------------------------------------- /docs/study/操作系统和硬件/计算机体系结构-量化研究方法(第六版)-学习笔记.md: -------------------------------------------------------------------------------- 1 | # 计算机体系结构-量化研究方法(第六版)-学习笔记 2 | 3 | > [关于翻译 - 计算机体系结构-量化研究方法(第六版)-汉化 (gitbook.io)](https://mxlol233.gitbook.io/ji-suan-ji-ti-xi-jie-gou-liang-hua-yan-jiu-fang-fa-di-liu-ban-han-hua/) 4 | > 5 | > [英文版附录链接](https://www.elsevier.com/books-and-journals/book-companion/9780128119051) 6 | > 7 | > [杂文:愿他长寿:计算机体系结构:量化研究方法(第6版)中文版的故事 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/415921386) 8 | > 9 | > 网友学习笔记:[计算机体系结构-cache高速缓存 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/482651908) -------------------------------------------------------------------------------- /docs/study/负载均衡-代理/负载均衡-代理-杂记.md: -------------------------------------------------------------------------------- 1 | # 负载均衡-代理 2 | 3 | ## 1. Nginx 4 | 5 | ### 1. 概述 6 | 7 | > [Nginx基本使用](https://www.cnblogs.com/nanianqiming/p/10630899.html) 8 | 9 | ### 2. 使用 10 | 11 | #### 0. 常见指令介绍 12 | 13 | > [nginx location指令详解](https://www.cnblogs.com/xiaoliangup/p/9175932.html) 14 | 15 | #### 1. 反向代理 16 | 17 | > [Nginx(三)------nginx 反向代理](https://www.cnblogs.com/ysocean/p/9392908.html) 18 | 19 | #### 2. 负载均衡 20 | 21 | > [浅谈Nginx负载均衡和F5的区别](https://www.cnblogs.com/Lonelydancer/p/6219567.html) 22 | 23 | ## 2. Ribbon 24 | 25 | ### 1. 概述 -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/初级算法/README.md: -------------------------------------------------------------------------------- 1 | # LeetCode-探索-初级算法 2 | 3 | > https://leetcode-cn.com/explore/featured/card/top-interview-questions-easy/ 4 | 5 | ## 目录 6 | 7 | * [数组](/study/LeetCode_Study/初级算法/初级算法-数组) 8 | * [字符串](/study/LeetCode_Study/初级算法/初级算法-字符串) 9 | * [树](/study/LeetCode_Study/初级算法/初级算法-树) 10 | * [排序和搜索](/study/LeetCode_Study/初级算法/初级算法-排序和搜索) 11 | * [动态规划](/study/LeetCode_Study/初级算法/初级算法-动态规划) 12 | * [设计问题](/study/LeetCode_Study/初级算法/初级算法-设计问题) 13 | * [数学](/study/LeetCode_Study/初级算法/初级算法-数学) 14 | * [其他](/study/LeetCode_Study/初级算法/初级算法-其他) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/初级算法/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/LeetCode_Study/README) 4 | * [数组](/study/LeetCode_Study/初级算法/初级算法-数组) 5 | * [字符串](/study/LeetCode_Study/初级算法/初级算法-字符串) 6 | * [链表](/study/LeetCode_Study/初级算法/初级算法-链表) 7 | * [树](/study/LeetCode_Study/初级算法/初级算法-树) 8 | * [排序和搜索](/study/LeetCode_Study/初级算法/初级算法-排序和搜索) 9 | * [动态规划](/study/LeetCode_Study/初级算法/初级算法-动态规划) 10 | * [设计问题](/study/LeetCode_Study/初级算法/初级算法-设计问题) 11 | * [数学](/study/LeetCode_Study/初级算法/初级算法-数学) 12 | * [其他](/study/LeetCode_Study/初级算法/初级算法-其他) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/中级算法/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/LeetCode_Study/README) 4 | * [数组和字符串](/study/LeetCode_Study/中级算法/中级算法-数组和字符串) 5 | * [链表](/study/LeetCode_Study/中级算法/中级算法-链表) 6 | * [树和图](/study/LeetCode_Study/中级算法/中级算法-树和图) 7 | * [回溯算法](/study/LeetCode_Study/中级算法/中级算法-回溯算法) 8 | * [排序和搜索](/study/LeetCode_Study/中级算法/中级算法-排序和搜索) 9 | * [动态规划](/study/LeetCode_Study/中级算法/中级算法-动态规划) 10 | * [设计问题](/study/LeetCode_Study/中级算法/中级算法-设计问题) 11 | * [数学](/study/LeetCode_Study/中级算法/中级算法-数学) 12 | * [其他](/study/LeetCode_Study/中级算法/中级算法-其他) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/高级算法/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/study/LeetCode_Study/README) 4 | * [数组和字符串](/study/LeetCode_Study/高级算法/高级算法-数组和字符串) 5 | * [链表](/study/LeetCode_Study/高级算法/高级算法-链表) 6 | * [树和图](/study/LeetCode_Study/高级算法/高级算法-树和图) 7 | * [回溯算法](/study/LeetCode_Study/高级算法/高级算法-回溯算法) 8 | * [排序和搜索](/study/LeetCode_Study/高级算法/高级算法-排序和搜索) 9 | * [动态规划](/study/LeetCode_Study/高级算法/高级算法-动态规划) 10 | * [设计问题](/study/LeetCode_Study/高级算法/高级算法-设计问题) 11 | * [数学](/study/LeetCode_Study/高级算法/高级算法-数学) 12 | * [其他](/study/LeetCode_Study/高级算法/高级算法-其他) -------------------------------------------------------------------------------- /docs/study/DataBase/MySQL/尚硅谷_Mycat视频教程-学习笔记.md: -------------------------------------------------------------------------------- 1 | # 尚硅谷_Mycat视频教程-学习笔记 2 | 3 | > 视频链接:[尚硅谷_Mycat视频教程](https://www.bilibili.com/video/av80469766) https://www.bilibili.com/video/av80469766 4 | 5 | ## 01-MyCat简介 6 | 7 | > [数据库分区、分表、分库、分片](https://blog.csdn.net/qq_28289405/article/details/80576614) 8 | > 9 | > [MySql从一窍不通到入门(五)Sharding:分表、分库、分片和分区](https://blog.csdn.net/kingcat666/article/details/78324678) 10 | > 11 | > [mycat的介绍及应用场景](https://blog.csdn.net/xiaozhenzi66/article/details/81286665) 12 | > 13 | > [彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)](https://blog.csdn.net/weixin_44062339/article/details/100491744) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/高级算法/README.md: -------------------------------------------------------------------------------- 1 | # LeetCode-探索-高级算法 2 | 3 | > https://leetcode-cn.com/explore/interview/card/top-interview-questions-hard/ 4 | 5 | ## 目录 6 | 7 | * [数组和字符串](/study/LeetCode_Study/高级算法/高级算法-数组和字符串) 8 | * [链表](/study/LeetCode_Study/高级算法/高级算法-链表) 9 | * [树和图](/study/LeetCode_Study/高级算法/高级算法-树和图) 10 | * [回溯算法](/study/LeetCode_Study/高级算法/高级算法-回溯算法) 11 | * [排序和搜索](/study/LeetCode_Study/高级算法/高级算法-排序和搜索) 12 | * [动态规划](/study/LeetCode_Study/高级算法/高级算法-动态规划) 13 | * [设计问题](/study/LeetCode_Study/高级算法/高级算法-设计问题) 14 | * [数学](/study/LeetCode_Study/高级算法/高级算法-数学) 15 | * [其他](/study/LeetCode_Study/高级算法/高级算法-其他) -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/中级算法/README.md: -------------------------------------------------------------------------------- 1 | # LeetCode-探索-中级算法 2 | 3 | > https://leetcode-cn.com/explore/interview/card/top-interview-questions-medium/ 4 | 5 | ## 目录 6 | 7 | * [数组和字符串](/study/LeetCode_Study/中级算法/中级算法-数组和字符串) 8 | * [链表](/study/LeetCode_Study/中级算法/中级算法-链表) 9 | * [树和图](/study/LeetCode_Study/中级算法/中级算法-树和图) 10 | * [回溯算法](/study/LeetCode_Study/中级算法/中级算法-回溯算法) 11 | * [排序和搜索](/study/LeetCode_Study/中级算法/中级算法-排序和搜索) 12 | * [动态规划](/study/LeetCode_Study/中级算法/中级算法-动态规划) 13 | * [设计问题](/study/LeetCode_Study/中级算法/中级算法-设计问题) 14 | * [数学](/study/LeetCode_Study/中级算法/中级算法-数学) 15 | * [其他](/study/LeetCode_Study/中级算法/中级算法-其他) -------------------------------------------------------------------------------- /docs/style.css: -------------------------------------------------------------------------------- 1 | section.cover .cover-main>p:last-child a:last-child { 2 | border: 1px solid var(--theme-color,#42b983); 3 | border-radius: 2rem; 4 | box-sizing: border-box; 5 | color: var(--theme-color,#42b983); 6 | display: inline-block; 7 | font-size: 1.05rem; 8 | letter-spacing: .1rem; 9 | margin: .5rem 1rem; 10 | padding: .75em 2rem; 11 | text-decoration: none; 12 | transition: all .15s ease; 13 | background-color: transparent; 14 | } 15 | section.cover .cover-main>p:last-child a:first-child { 16 | background-color: var(--theme-color,#42b983); 17 | color: #fff; 18 | } -------------------------------------------------------------------------------- /docs/study/Linux/Linux知识-学习笔记.md: -------------------------------------------------------------------------------- 1 | ## Linux知识-学习笔记 2 | 3 | > 下面的知识点比较凌乱。额。 4 | 5 | ### 1. 用户空间、内核空间、内存 6 | 7 | > [什么是内核缓冲区,用户缓冲区](http://blog.chinaunix.net/uid-22906954-id-4161625.html) 8 | > 9 | > [Linux用户空间与内核空间(理解高端内存)](https://blog.csdn.net/u013377887/article/details/82724628) 10 | > 11 | > [(整理)用户空间_内核空间以及内存映射](https://blog.csdn.net/omnispace/article/details/80077769) 12 | 13 | ### 999. 杂乱知识点 14 | 15 | > [Why do linux packages expect root permissions to install?](https://superuser.com/questions/634856/why-do-linux-packages-expect-root-permissions-to-install) 16 | > 17 | > + 需要安装到共享目录下,所以需要root 18 | > + 二进制安装,路径相关的变量硬编码到程序中,所以固定路径,而固定到共享目录(需root)是最省事的 19 | 20 | -------------------------------------------------------------------------------- /docs/study/DataBase/Redis/《Redis设计与实现(第二版)》-读书笔记.md: -------------------------------------------------------------------------------- 1 | # 《Redis设计与实现(第二版)》-读书笔记 2 | 3 | # 1. 引言 4 | 5 | ## 1.1 Redis版本说明 6 | 7 | ## 1.2 章节编排 8 | 9 | ## 1.3 推荐的阅读方法 10 | 11 | ## 1.4 行文规则 12 | 13 | ## 1.5 配套网站 14 | 15 | redisbook.com 16 | 17 | # 第一部分 数据结构与对象 18 | 19 | # 2. 简单动态字符串 20 | 21 | + C语言传统字符串,即以空字符结尾的字符数组。 22 | + Redis自己构建名为简单动态字符串(simple dynamic string,SDS)的抽象类型,用作默认字符串表示。 23 | 24 | 当需要可修改的字符串(非字符串字面量)时,Redis使用SDS表示字符串值。比如,在Redis数据库中,包含字符串的键值对在底层都是由SDS实现的。 25 | 26 | SDS在Redis中的使用场景: 27 | 28 | + 保存数据库中的字符串值(key或value的字符串值) 29 | + 用作缓冲区(buffer):AOF模块中的AOF缓冲区,以及客户端状态中的输入缓冲区。 30 | 31 | ## 2.1 SDS的定义 32 | 33 | > src/sds.h 源代码中有很多内存优化版本,这里取其共同结构。(这本书的描述较老,建议结合新版源码查阅相关文章学习) 34 | 35 | ```c 36 | struct sdshdr { 37 | int len; 38 | int alloc; 39 | char flags; 40 | char buf[]; 41 | } 42 | ``` 43 | 44 | -------------------------------------------------------------------------------- /docs/study/文件管理/FastDFS/FastDFS杂记.md: -------------------------------------------------------------------------------- 1 | # FastDFS杂记 2 | 3 | ## 1. 介绍和部署 4 | 5 | > 介绍: 6 | > 7 | > [fastDFS](https://www.jianshu.com/p/b7c330a87855) 8 | > 9 | > 部署: 10 | > 11 | > [如何用docker部署FastDFS(分布式文件系统)](https://blog.csdn.net/qq_43455410/article/details/84797814?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task) 12 | > 13 | > [阿里云使用docker-compose 部署fastdfs+nginx分布式文件存储系统](https://blog.csdn.net/bondsui/article/details/90115486) 14 | > 15 | > [基于 Docker 安装 FastDFS](https://www.jianshu.com/p/1038b4d95912) 16 | > 17 | > [如何用docker部署FastDFS(分布式文件系统)](https://blog.csdn.net/qq_43455410/article/details/84797814) 18 | > 19 | > [关于FastDFS文件名命名规则,以及是否会重复的问题](https://blog.csdn.net/cihuan0804/article/details/100693738) 20 | 21 | ## 2. 分布式文件系统对比 22 | 23 | > [分布式文件系统的比较,115网盘用了fastdfs](https://www.cnblogs.com/findumars/p/6943159.html) -------------------------------------------------------------------------------- /docs/study/网络安全/加密解密/加密解密杂谈.md: -------------------------------------------------------------------------------- 1 | # 加密解密杂谈 2 | 3 | ## 1. 对称加密 4 | 5 | ### 1. DES/AES 6 | 7 | > [java中以DES的方式实现对称加密并提供密钥的实例](https://www.jb51.net/article/120499.htm) 8 | > 9 | > [JAVA实现AES 解密报错Input length must be multiple of 16 when decrypting with padded cipher](https://www.cnblogs.com/catalina-/p/6001831.html) 10 | 11 | ## 2. 非对称加密 12 | 13 | > [常见非对称加密算法](https://blog.csdn.net/tomatoxman/article/details/89183876) 14 | > 15 | > [JAVA RSA非对称加密详解[转载]](https://www.cnblogs.com/frank-quan/p/7073457.html) 16 | > 17 | > [RSA密钥长度、明文长度和密文长度](https://blog.csdn.net/luoluo_onion/article/details/78354799) 18 | 19 | ## 3. 数字签名、数字证书 20 | 21 | > [数字签名和数字证书详解](http://www.360doc.cn/article/41390840_783477292.html) 22 | > 23 | > [数字签名和数字证书究竟是什么?](https://www.jianshu.com/p/80aa37311151) 24 | > 25 | > [PKI/CA与数字证书](https://blog.csdn.net/u013066292/article/details/79538069) 26 | > 27 | > [5分钟让你知道什么是PKI](http://www.mamicode.com/info-detail-2222963.html) 28 | 29 | -------------------------------------------------------------------------------- /docs/study/React/官方入门教程学习.md: -------------------------------------------------------------------------------- 1 | ### 入门教程:认识React - React 2 | 3 | #### 游戏完善 4 | 5 | + 状态提升 6 | 7 | 1. 在React中,有一个命名规范,通常会将代表时间的监听prop命名为on[Event],将处理事件的监听方法命名为handle[Event]这样的格式 8 | 9 | + 为什么不可变性在React中非常重要 10 | 1. **函数组件**:如果你想写的组件只包含一个 `render` 方法,并且不包含 state,那么使用**函数组件**就会更简单。我们不需要定义一个继承于 `React.Component` 的类,我们可以定义一个函数,这个函数接收 `props` 作为参数,然后返回需要渲染的元素。函数组件写起来并不像 class 组件那么繁琐,很多组件都可以使用函数组件来写。 11 | 2. 当我们把 Square 修改成函数组件时,我们同时也把 `onClick={() => this.props.onClick()}` 改成了更短的 `onClick={props.onClick}`(注意两侧*都*没有括号) 12 | 13 | #### 时间旅行 14 | 15 | + 选择一个key 16 | 1. `key` 是 React 中一个特殊的保留属性(还有一个是 `ref`,拥有更高级的特性)。当 React 元素被创建出来的时候,React 会提取出 `key` 属性,然后把 key 直接存储在返回的元素上。虽然 `key` 看起来好像是 `props` 中的一个,但是你不能通过 `this.props.key` 来获取 `key`。React 会通过 `key` 来自动判断哪些组件需要更新。组件是不能访问到它的 `key` 的。 17 | 2. **我们强烈推荐,每次只要你构建动态列表的时候,都要指定一个合适的 key。**如果你没有找到一个合适的 key,那么你就需要考虑重新整理你的数据结构了,这样才能有合适的 key。 18 | 3. 组件的 key 值并不需要在全局都保证唯一,只需要在当前的同一级元素之前保证唯一即可。 19 | 20 | + 实现时间旅行 21 | 1. 22 | 23 | -------------------------------------------------------------------------------- /docs/study/Game-dev/Godot(官方教程)-学习笔记.md: -------------------------------------------------------------------------------- 1 | # Godot(官方教程)-学习笔记 2 | 3 | > [Introduction — Godot Engine (stable) documentation in English](https://docs.godotengine.org/en/stable/about/introduction.html) 4 | > 5 | > [Learn Godot's GDScript From Zero by GDQuest, Xananax (itch.io)](https://gdquest.itch.io/learn-godot-gdscript) 6 | > 7 | > [Godot文件- 主 分支 — Godot Engine latest 文档 (osgeo.cn)](https://www.osgeo.cn/godot/index.html) 8 | > 9 | > [Vignette - Godot Shaders](https://godotshaders.com/shader/vignette/) 10 | 11 | 1. Godot默认子节点ready之后,才会ready父节点。如果需要在子节点中直接或间接调用到父节点的onready变量,就会报错。可以通过`await owner.ready ` 先等待父节点ready 12 | 2. `@export`变量在`__init__`之后,`_ready()`方法之前初始化,在`_ready()`可以安全访问 13 | 3. `@onready`变量在`_ready()`方法中由Godot自动初始化 14 | 4. 普通变量的初始化在`@export`变量之前 15 | 5. 初始化顺序:`普通var` > `@export` > `@onready` 16 | 6. Godot制作2D像素游戏,纹理大小Rect宽高最好设置为偶数,避免图片在相机移动时发生抖动 17 | 7. input输入事件传播的调用链(注意,输入事件的传播和输入状态查询`Input.get_axis("move_left")`是两套系统):`_input()`>`_gui_input()`>`_shortcut_input()`>`unhandled_key_input()`>`_unhandled_input()`>其他逻辑。按照上述顺序,前面的函数没有处理逻辑则继续向后检测处理逻辑。 18 | 19 | 8. -------------------------------------------------------------------------------- /docs/study/Android/Android开发基础教程(2019)学习笔记.md: -------------------------------------------------------------------------------- 1 | # Android开发基础教程(2019)学习笔记 2 | 3 | > 二话不说,贴其中一个视频的链接,其他的也是同一个up主投递 4 | > 5 | > https://www.bilibili.com/video/av52405925/?spm_id_from=333.788.videocard.0 6 | 7 | #### 2. "Hello World" 8 | 9 | #### 3.界面布置ConstraintLayout(1) 10 | 11 | + ConstraintLayout使用魔法棒,自动部署布局 12 | 13 | #### 4. 界面布置ConstraintLayout(2) 14 | 15 | + Guideline、Barrier和Group的使用 16 | + Guideline:实际界面不显示,但是可以把元素位置锁定到其上,方便设计(主要掌握百分比辅助线使用) 17 | + Barrier:实际不显示,遇到放入其中的元素会停下,变成以另一个作为拖动边界的条件 18 | + Group:可以统一对所属的元素进行属性设置 19 | 20 | #### 5. Activity LifeCycle 21 | 22 | + onCreate()-> onStart()-> onResume() -> onPause() -> onStop() -> onDestroy() 23 | + 调用finish()会触发onDestroy(),切换为横屏也会触发onDestroy,重新创建Activity 24 | + 需要在onDestroy()之前释放资源,避免内存泄漏 25 | + 自己尝试了下,回到桌面会执行onPause(),onStop(). 26 | + 关闭程序Log没显示执行onDestroy() 27 | + 从桌面回去程序执行onRestart(),onStart(),onResume() 28 | 29 | + 官方Activity生命周期图 30 | 31 |  32 | 33 | #### 6. XXX 34 | 35 | -------------------------------------------------------------------------------- /docs/study/Vue/Vue笔记.md: -------------------------------------------------------------------------------- 1 | # Vue笔记 2 | 3 | > 最近由于作业的原因,又重新接触了许久没碰过的Vue。 4 | > 5 | > 有时候看到不错的文章或者技巧就摘录、分享。 6 | 7 | ## 1. JavaScript模块化 8 | 9 | > [JavaScript 模块化:CommonJS、AMD、CMD、UMD 和 ES6 Module](https://www.jianshu.com/p/6e688c482b38) 10 | 11 | ### 1. CommonJS 12 | 13 | 按照声明的导入次序顺序加载模块。通常用于node.js这类服务端JS代码中。客户端则往往需要异步加载多个模块,不适合使用CommonJS。 14 | 15 | ### 2. ES6 Module 16 | 17 | 异步导入,编译期加载。通常浏览器使用。 18 | 19 | ### 3. 常用的CommonJS和ES6 Module的差异*(摘至上方引用文章)* 20 | 21 | **1. CommonJS 支持动态导入,也就是 `require(${path}/xx.js)` ,ES6 目前还不支持,但是已有提案。** 22 | 23 | **2. CommonJS 是同步导入,ES6是异步导入。** 24 | 25 | + CommonJS 因为用于服务端,文件都在本地,同步导入即使卡住主线程影响也不大。 26 | 27 | + ES6 因为用于浏览器,需要下载文件,如果也采用同步导入会对渲染有很大影响。 28 | 29 | **3. CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。** 30 | 31 | - CommonJS 模块输出的是值的拷贝,也就是说,一旦输出一个值,模块内部的变化就影响不到这个值;另一方面,如果导出的值变了,导入的值也不会变,所以如果想更新值,必须重新导入一次。 32 | - ES6 采用实时绑定的方式,导入和导出的值都指向同一个内存地址,所以导入的值会跟随导出的值变化。 33 | 34 | **4. CommonJS 模块是运行时加载,ES6 模块是编译时加载。** 35 | 36 | + CommonJS 模块就是一个对象,在导入时先加载整个模块,生成一个对象( 这个对象只有在脚本运行完才会生成 ),然后再从这个对象上读取方法,这种加载称为“运行时加载”。 37 | + ES6 模块不是对象,它的对外接口只是一种静态定义,在代码运行之前( 即编译时 )的静态解析阶段就完成了模块加载,比 CommonJS 模块的加载方式更高效。 -------------------------------------------------------------------------------- /docs/study/Java/README.md: -------------------------------------------------------------------------------- 1 | # Java 2 | 3 | ## 目录 4 | 5 | * [Java复习回顾](/study/Java/Java复习回顾) 6 | * [《Effective-Java第三版》-读书笔记-01](/study/Java/《Effective-Java第三版》-读书笔记-01) 7 | * [《Effective-Java第三版》-读书笔记-02](/study/Java/《Effective-Java第三版》-读书笔记-02) 8 | * [《Effective-Java第三版》-读书笔记-03](/study/Java/《Effective-Java第三版》-读书笔记-03) 9 | * [《Effective-Java第三版》-读书笔记-04](/study/Java/《Effective-Java第三版》-读书笔记-04) 10 | * [《Java并发编程的艺术》-读书笔记-上](/study/Java/《Java并发编程的艺术》-读书笔记-上) 11 | * [《Java并发编程的艺术》-读书笔记-下](/study/Java/《Java并发编程的艺术》-读书笔记-下) 12 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(1)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(1)) 13 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(2)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(2)) 14 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(3)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(3)) 15 | * [Java-ASM-学习笔记01](/study/Java/Java-ASM-学习笔记01) 16 | * [Java-ASM-学习笔记02](/study/Java/Java-ASM-学习笔记02) 17 | * [Java-ASM-学习笔记03](/study/Java/Java-ASM-学习笔记03) 18 | * [Java-Agent-学习笔记](/study/Java/Java-Agent-学习笔记) 19 | * [《bytebuddy核心教程》-学习笔记](/study/Java/《bytebuddy核心教程》-学习笔记) 20 | * [《bytebuddy进阶实战》-学习笔记](/study/Java/《bytebuddy进阶实战》-学习笔记) 21 | 22 | -------------------------------------------------------------------------------- /docs/study/LeetCode_Study/数据结构与算法/递归.md: -------------------------------------------------------------------------------- 1 | # 递归 2 | 3 | > [探索--递归](https://leetcode-cn.com/leetbook/detail/recursion/) 4 | 5 | ## 01 概述 6 | 7 | ## 02 递归原理 8 | 9 | ### 反转字符串 10 | 11 | 语言:java 12 | 13 | 思路:DFS 14 | 15 | 代码(2ms,14.57%): 16 | 17 | ```java 18 | class Solution { 19 | public void reverseString(char[] s) { 20 | if(s.length>1){ 21 | dfs(s,0); 22 | } 23 | } 24 | 25 | public void dfs(char[] arrs, int index){ 26 | char tmp = arrs[index]; 27 | int another = arrs.length-1-index; 28 | arrs[index] = arrs[another]; 29 | arrs[another] = tmp; 30 | if(index==arrs.length/2-1){ 31 | return; 32 | }else{ 33 | dfs(arrs, index+1); 34 | } 35 | } 36 | } 37 | ``` 38 | 39 | ### 两两交换链表中的节点 40 | 41 | 语言:java 42 | 43 | 思路:DFS,这里需要注意的是,对掉后,原本head的next应该是“假设已经递归对掉完了的链表”,而不是单纯的下标2的第三个节点。 44 | 45 | 代码(0ms): 46 | 47 | ```java 48 | class Solution { 49 | public ListNode swapPairs(ListNode head) { 50 | if(head==null||head.next==null){ 51 | return head; 52 | } 53 | ListNode next = head.next; 54 | head.next = swapPairs(next.next); 55 | next.next = head; 56 | return next; 57 | } 58 | } 59 | ``` 60 | 61 | -------------------------------------------------------------------------------- /docs/study/Java/_sidebar.md: -------------------------------------------------------------------------------- 1 | * **目录** 2 | * [根目录(/)](/README) 3 | * [回到上一级(../)](/README) 4 | * [Java复习回顾](/study/Java/Java复习回顾) 5 | * [《Effective-Java第三版》-读书笔记-01](/study/Java/《Effective-Java第三版》-读书笔记-01) 6 | * [《Effective-Java第三版》-读书笔记-02](/study/Java/《Effective-Java第三版》-读书笔记-02) 7 | * [《Effective-Java第三版》-读书笔记-03](/study/Java/《Effective-Java第三版》-读书笔记-03) 8 | * [《Java并发编程的艺术》-读书笔记-上](/study/Java/《Java并发编程的艺术》-读书笔记-上) 9 | * [《Java并发编程的艺术》-读书笔记-下](/study/Java/《Java并发编程的艺术》-读书笔记-下) 10 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(1)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(1)) 11 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(2)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(2)) 12 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(3)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(3)) 13 | * [《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(4)](/study/Java/《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》-读书笔记(4)) 14 | * [Java-ASM-学习笔记01](/study/Java/Java-ASM-学习笔记01) 15 | * [Java-ASM-学习笔记02](/study/Java/Java-ASM-学习笔记02) 16 | * [Java-ASM-学习笔记03](/study/Java/Java-ASM-学习笔记03) 17 | * [Java-Agent-学习笔记](/study/Java/Java-Agent-学习笔记) 18 | * [《bytebuddy核心教程》-学习笔记](/study/Java/《bytebuddy核心教程》-学习笔记) 19 | * [《bytebuddy进阶实战》-学习笔记](/study/Java/《bytebuddy进阶实战》-学习笔记) 20 | 21 | -------------------------------------------------------------------------------- /docs/study/网络安全/XSS/Web安全-XSS教程.md: -------------------------------------------------------------------------------- 1 | # Web安全-XSS教程 2 | 3 | > 慕课网视频链接 4 | > 5 | > https://www.imooc.com/video/14367 6 | 7 | ## 理解XSS攻击方式 8 | 9 | ### 反射型 10 | 11 | #### 1. 定义 12 | 13 | 发送请求时,**XSS代码出现在URL**中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射性XSS。 14 | 15 | ### 存储型 16 | 17 | #### 1. 定义 18 | 19 | 存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码 20 | 21 | 22 | 23 | ## 掌握XSS的方法措施 24 | 25 | ### 编码 26 | 27 | #### 1. 概要 28 | 29 | 对用户输入的数据进行HTML Entity编码 30 | 31 | #### 2. 举例 32 | 33 | | 字符 | 十进制 | 转义字符 | 34 | | ------------------------------ | ------- | -------- | 35 | | " | \" | \" | 36 | | ' | \' | \' | 37 | | & | \& | \& | 38 | | < | \< | \< | 39 | | > | \> | \> | 40 | | 不断开空格(non-breaking space) | \ | \ | 41 | 42 | ### 过滤 43 | 44 | #### 1. 概要 45 | 46 | 移除用户上传的DOM属性,如onerror等 47 | 48 | 移除用户上传的Style节点、Script节点、Iframe节点等 49 | 50 | ### 校正 51 | 52 | #### 1. 概要 53 | 54 | 避免之直接对HTEML Enity解码 55 | 56 | 使用DOM Parse转换,校正不配都的DOM标签 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /docs/study/BigData/杂/tmp.md: -------------------------------------------------------------------------------- 1 | # 杂 2 | 3 | # 1. MPP 4 | 5 | > [MPP概述_trocp的专栏-CSDN博客_mpp数据库](https://blog.csdn.net/trocp/article/details/86687206) 6 | > 7 | > [MPP架构_迷路剑客个人博客-CSDN博客_mpp架构](https://blog.csdn.net/baichoufei90/article/details/84328666) 8 | > [MPP 与 Hadoop是什么关系? - 知乎 (zhihu.com)](https://www.zhihu.com/question/22037987) 9 | 10 | # 2. Data Lake 11 | 12 | 感觉就是弱化存储介质的差异性,统一管理,需要有完善的管理形式,方便集中读写数据、管理数据等。 13 | 14 | 一般需要对外抽象数据访问形式,使得能够简易地接入各种数据处理组件,而不过多地关心底层数据存储的差异性。 15 | 16 | > [Hello from Apache Hudi | Apache Hudi](https://hudi.apache.org/) 17 | > 18 | > [Data lake - Wikipedia](https://en.wikipedia.org/wiki/Data_lake) 19 | > 20 | > [数据湖 | 一文读懂Data Lake的概念、特征、架构与案例_Focus on Bigdata-CSDN博客_datalake](https://blog.csdn.net/u011598442/article/details/106610486) 21 | > 22 | > [数据湖(Data Lake) 总结 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/91165577) 23 | > 24 | > [DataLake 基本概念_test_fy的博客-CSDN博客_datalake](https://blog.csdn.net/test_fy/article/details/80881958) 25 | 26 | # 3. Data Fabric 27 | 28 | 感觉就是解决数据数据分布散乱的问题,类似K8s管理多个容器,Data Fabric概念管理多个复杂数据源(不是指存储介质or存储引擎,是对数据更高维度的抽象)。 29 | 30 | 比如某些服务器可能过去承载了PB级别的某种类型数据(可以是某类业务数据,多种形式的存储介质整合的产物),现在需要扩展,但是不方便迁移这些大量数据,就索性不迁移,但是通过一些服务注册、发现机制,使得这部分数据更易被读写、管理。 31 | 32 | > [IBM Cloud Pak for Data - 中国 | IBM](https://www.ibm.com/cn-zh/products/cloud-pak-for-data) 33 | > 34 | > [Data Fabric (数据经纬): 下一个IT的风口? - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/400354162) -------------------------------------------------------------------------------- /docs/_sidebar.md: -------------------------------------------------------------------------------- 1 | * 导读 2 | * [**Android**](/study/Android/README) 3 | * [**LeetCode**](/study/LeetCode_Study/README) 4 | * [**React**](/study/React/README) 5 | * [**Vue**](/study/Vue/README) 6 | * [**GoLang**](/study/GoLang/README) 7 | * [**Java**](/study/Java/README) 8 | * [**Python**](/study/Python/README) 9 | * [**Scala**](/study/Scala/README.md) 10 | * [**Rust**](/study/Rust/README.md) 11 | * [**BigData**](/study/BigData/README.md) 12 | * [**SpringBoot**](/study/SpringBoot/README) 13 | * [**SpringCloud**](/study/SpringCloud/README) 14 | * [**MQ**](/study/MQ/README) 15 | * [**Netty**](/study/Netty/README) 16 | * [**Linux**](/study/Linux/README) 17 | * [**操作系统和硬件**](/study/操作系统和硬件/README) 18 | * [**分布式策略**](/study/分布式策略/README) 19 | * [**负载均衡-代理**](/study/负载均衡-代理/README) 20 | * [**领域特定语言DSL**](/study/领域特定语言DSL/README) 21 | * [**计算机网络**](/study/计算机网络/README) 22 | * [**网络安全**](/study/网络安全/README) 23 | * [**推荐系统**](/study/推荐系统/README) 24 | * [**设计模式**](/study/设计模式/README) 25 | * [**计算广告**](/study/计算广告/README) 26 | * [**文件管理**](/study/文件管理/README) 27 | * [**编程范式(ProgrammingParadigm)**](/study/编程范式(ProgrammingParadigm)/README.md) 28 | * [**通用架构知识**](/study/通用架构知识/README.md) 29 | * [**DataBase**](/study/DataBase/README) 30 | * [**Elastic-Stack**](/study/Elastic-Stack/README) 31 | * [**Docker**](/study/Docker/README) 32 | * [**kubernetes**](/study/kubernetes/README) 33 | * [**CICD**](/study/CICD/README) 34 | * 暂无更多... 35 | 36 | -------------------------------------------------------------------------------- /docs/study/操作系统和硬件/操作系统和硬件-杂记.md: -------------------------------------------------------------------------------- 1 | # 操作系统和硬件-杂记 2 | 3 | ## 1. CPU 4 | 5 | ### 1.1 寄存器和缓存 6 | 7 | > [cpu寄存器和缓存](https://blog.csdn.net/weixin_41490593/article/details/91447141) 8 | > 9 | > [cpu中的四级缓存有什么作用呢?](http://ask.zol.com.cn/q/2865556.html) 10 | 11 | ## 2. Linux 12 | 13 | ### 2.1 用户态和内核态 14 | 15 | > [linux之用户态和内核态](https://www.cnblogs.com/cyyz-le/p/10962818.html) 16 | 17 | ### 2.2 系统调用 18 | 19 | > [你真的知道什么是系统调用吗?](https://www.jianshu.com/p/9c62a65b6162) 20 | > 21 | > 辅助知识 22 | > 23 | > [问下 电脑所说的什么32位 64位是什么意思啊?](https://zhidao.baidu.com/question/744264837762178692.html?qbl=relate_question_2&word=32%CE%BB%BA%CD64%CE%BB%CA%C7%B8%F9%BE%DD%CA%B2%C3%B4%C0%B4%CB%E3%B5%C4) 24 | > 25 | > [Linux用户空间与内核空间(理解高端内存)](https://www.cnblogs.com/wuchanming/p/4360277.html) 26 | > 27 | > [Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈](https://blog.csdn.net/yangkuanqaz85988/article/details/52403726) 28 | > 29 | > 30 | 31 | 现代CPU通常有多种特权级别,一般总共4总,Ring0(最高特权)到Ring3(最低特权),Linux只用Ring0(内核态)和Ring3(用户态)。 32 | 33 | 操作系统通过"**中断**"来切换"用户态"和"内核态"。 34 | 35 | *(==个人感觉内核态和用户态类似内存划分的”用户进程空间“和“内核空间”==,只不过前者针对CPU,后者针对内存资源的使用。32位操作系统,CPU理论一次性能处理32bit数据,而逻辑上寻址即2^32byte也就是4G。而其中0-3G即用户空间,3-4G即内核空间,而3-4G的内核空间虽然就1G,但这个是逻辑地址,经过段页式地址映射后才是真正的物理地址。内核空间通过段页式映射,能访问到所有真正的物理内存,而用户进程只访问对应3G内存,前面这些都是指x86 CPU--32位操作系统。64位不一样,不过思想上一致)* 36 | 37 | 中断一般包含两个属性:"**中断号**"和"**中断处理程序**"。内核通过"中断向量表"查找中断号和中断处理程序对应关系。遇到中断时,CPU暂停当前执行的指令,根据中断号查找对应的中断处理程序并调用,中断处理程序调用完成后,再继续执行之前暂停执行的指令。 38 | 39 | 中断分两种:"**硬件中断**"和"**软件中断**"。软件中断就是我们的应用程序所使用的中断,往往是一条指令,比如在i386 CPU处理器,对应指令即int,int 0x80表示调用第0x80号中断处理程序。 40 | 41 | -------------------------------------------------------------------------------- /docs/study/Spring/Spring杂记.md: -------------------------------------------------------------------------------- 1 | # Spring杂记 2 | 3 | > [Spring常见面试题总结(超详细回答)](https://blog.csdn.net/a745233700/article/details/80959716) 4 | > 5 | > [Spring IOC介绍与4种注入方式](https://zhuanlan.zhihu.com/p/34405799) 6 | > 7 | > [深入解析spring中用到的九种设计模式](https://kaiwu.lagou.com/java_architect.html) 8 | > 9 | > [Spring系列之beanFactory与ApplicationContext](https://www.cnblogs.com/xiaoxi/p/5846416.html) 10 | > 11 | > [Spring-bean的循环依赖以及解决方式](https://blog.csdn.net/u010853261/article/details/77940767) 12 | > 13 | > Spring的循环依赖的理论依据其实是基于Java的引用传递,当我们获取到对象的引用时,对象的field或则属性是可以延后设置的(但是构造器必须是在获取引用之前)。 14 | > 15 | > [为什么使用Spring的@autowired注解后就不用写setter了?](https://blog.csdn.net/qq_19782019/article/details/85038081) 16 | > 17 | > Spring偷偷的把我们用@autowired标记过的属性的【访问控制检查】给关闭了,即对每个属性进行了【setAccessible(true)】的设置,导致这些属性即使被我们标记了【private】,Spring却任然能够不通过getter和setter方法来访问这些属性,达到一定的目的。 18 | > 19 | > [Spring Bean 的scope什么时候设置为prototype,什么时候设置为singleton](https://blog.csdn.net/q276513307/article/details/78393599) 20 | > 21 | > 1.对于有实例变量的类,要设置成prototype;没有实例变量的类,就用默认的singleton 22 | > 2.Action一般我们都会设置成prototype,而Service只用singleton就可以。 23 | > 24 | > [spring boot 使用ThreadLocal实例](https://blog.csdn.net/qq_27127145/article/details/83894400) 25 | > 26 | > [关于PROPAGATION_NESTED的理解](https://blog.csdn.net/yanxin1213/article/details/100582643) <== 还有对易混淆的几个事务传播行为举例。 27 | > 28 | > PROPAGATION_REQUIRES_NEW 启动一个新的, 不依赖于环境的 "内部" 事务. 这个事务将被完全 commited 或 rolled back 而不依赖于外部事务, 它拥有自己的隔离范围, 自己的锁, 等等. 当内部事务开始执行时, 外部事务将被挂起, 内务事务结束时, 外部事务将继续执行. 29 | > 另一方面, PROPAGATION_NESTED 开始一个 "嵌套的" 事务, 它是已经存在事务的一个真正的子事务. 潜套事务开始执行时, 它将取得一个 savepoint. 如果这个嵌套事务失败, 我们将回滚到此 savepoint. 潜套事务是外部事务的一部分, 只有外部事务结束后它才会被提交. 30 | 31 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |= 0; i--) {
215 | char c = s.charAt(i);
216 | switch (c) {
217 | case 'I':
218 | res += (res >= 5 ? -1 : 1);
219 | break;
220 | case 'V':
221 | res += 5;
222 | break;
223 | case 'X':
224 | res += 10 * (res >= 50 ? -1 : 1);
225 | break;
226 | case 'L':
227 | res += 50;
228 | break;
229 | case 'C':
230 | res += 100 * (res >= 500 ? -1 : 1);
231 | break;
232 | case 'D':
233 | res += 500;
234 | break;
235 | case 'M':
236 | res += 1000;
237 | break;
238 | }
239 | }
240 | return res;
241 | }
242 | }
243 | ```
244 |
245 |
246 |
247 |
--------------------------------------------------------------------------------
/docs/study/SpringBoot/SpringBoot学习杂记.md:
--------------------------------------------------------------------------------
1 | # SpringBoot学习杂记
2 |
3 | ## 1. 依赖注入
4 |
5 | > [Spring学习(十八)Bean 的三种依赖注入方式介绍](https://www.cnblogs.com/lirunzhou/p/9843176.html)
6 | >
7 | > [@Autowired的使用:推荐对构造函数进行注释](https://blog.csdn.net/qq_22873427/article/details/73718952)
8 |
9 | # 2. AOP
10 |
11 | > [Aspectj与Spring AOP比较 - 简书 (jianshu.com)](https://www.jianshu.com/p/872d3dbdc2ca) => 图文并茂,推荐阅读
12 |
13 | # 3. Spring事务
14 |
15 | > + [Spring中同一类@Transactional修饰方法相互调用的坑_前路无畏的博客-CSDN博客](https://blog.csdn.net/fsjwin/article/details/109211355) <= 避坑推荐
16 | > + [Spring事务-随笔-Ashiamd - 博客园 (cnblogs.com)](https://www.cnblogs.com/Ashiamd/p/15085827.html)
17 | > + [Spring事务测试github项目](https://github.com/Ashiamd/SpringTransactionTest)
18 |
19 | 1. @Transactional 由于serviceImp实现的service,所以AOP默认用的Spring AOP中的jdk动态代理。因此private、protected、包级、static的不能生效,但是不报错。另外由于AOP,同类下的其他方法上的@Transactional不生效,因为是类内部方法调用,动态代理不生效。
20 |
21 | 解决方法:
22 |
23 | 1. 写在不同的类里;
24 |
25 | ```java
26 | // eg:
27 | @Service("studentService")
28 | public class StudentServiceImpl implements StudentService {
29 |
30 | @Resource
31 | private TeacherService teacherService;
32 |
33 | @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRES_NEW)
34 | @Override
35 | public void A(Integer id) throws Exception {
36 | this.insert(id);
37 | teacherService.insert(id);
38 | }
39 | }
40 | ```
41 |
42 | 2. 同类,但是用AspectJ获取代理对象,用代理对象再调用同类的B方法;
43 |
44 | ```java
45 | // eg:
46 | @Service("studentService")
47 | public class StudentServiceImpl implements StudentService {
48 |
49 | @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRES_NEW)
50 | @Override
51 | public void A(Integer id) throws Exception {
52 | this.insert(id);
53 | ((StudentServiceImpl)AopContext.currentProxy()).B(id);
54 | }
55 | }
56 | ```
57 |
58 | 3. 同类,依赖注入自己,再调用注入的对象的方法
59 |
60 | ```java
61 | // eg:
62 | @Service("studentService")
63 | public class StudentServiceImpl implements StudentService {
64 |
65 | @Resource
66 | private StudentService studentService;
67 |
68 | @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRES_NEW)
69 | @Override
70 | public void A(Integer id) throws Exception {
71 | this.insert(id);
72 | studentService.insert(id);
73 | }
74 | }
75 | ```
76 |
77 | (ps: 可以在 `org.springframework.transaction.interceptor.TransactionAspectSupport#invokeWithinTransaction` 中打断点查看一些事务调用情况)
78 |
79 | 2. @Transactional指定的spring事务传播对 TransactionTemplate transactionTemplate 同样有效。
80 |
81 | + TransactionTemplate transactionTemplate可以通过`transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_NEVER);`设置事务传播级别。
82 | + 注意,如果在@Transactional方法内又使用transactionTemplate,那可能导致最后开了两个事务(具体看transactionTemplate设置的事务传播级别是什么,如果@Transactional和transactionTemplate都是用REQUIRES_NEW,那就是两个不相干的事务了)
83 |
84 | 3. REQUIRES_NEW 和 NESTED的区别,前者开启和原事务完全无关的新事务,回滚是独立的新事务被回滚;后者如果已经存在事务,则仅设置savepoint,和原事务是同一个事务,不过就是后者回滚只回滚到自己的检查点。如果原本没有事务,那么NESTED就和REQUIRES一样都是新建事务。
85 |
86 | 4. 由于@Transactional这边Spring传播级别通过AOP实现,所以调用方法的时候就确认是否有父事务环境了,不会等运行到中间调用B之后又重新判断(所以如果外层是Propagation.NEVER,即时方法内临时调用另一个事务方法,也不会抛出异常,外部方法始终无事务,内部被调用方法是独立的一个事务)。
87 |
88 | 5. 同一个类中方法调用会可能导致@Transactional失效,重新使得@Transcational生效的方法:
89 | 1. pom.xml 中添加AspectJ:
90 | ```xml
91 |
92 | org.springframework.boot
93 | spring-boot-starter-aop
94 |
95 | ```
96 | 2. 启动类上添加 @EnableAspectJAutoProxy(exposeProxy = true)
97 | 3. AopContext.currentProxy()操作当前的代理类
98 | ```java
99 | AopContext.currentProxy().A; // 调用代理类的.A方法。
100 | ```
101 |
102 | 6. TransactionTemplate相关
103 |
104 | - transactionTemplate.execute本身就是开一个事务,也可以手动设定事务传播级别等。和@Transactional注解的区别就是注解的形式在方法执行前设置事务传播级别和开启事务,而transactionTemplate只在execute的时候才开启事务。
105 |
106 | + TransactionTemplate transactionTemplate可以通过`transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_NEVER);`设置事务传播级别
107 |
108 | 7. Spring AOP知识回顾
109 |
110 | 1. 对于基于接口动态代理的AOP事务增强来说,由于接口的方法是public的,这就要求实现类的实现方法必须是public的, 不能是protected,private等,同时不能使用static的修饰符。
111 |
112 | 所以,可以实施接口动态代理的方法只能是使用“public” 或 “public final”修饰符的方法,其它方法不可能被动态代理,相应的也就不能实施AOP增强,也即不能进行Spring事务增强。
113 |
114 | 2. 基于CGLib字节码动态代理的方案是通过扩展被增强类,动态创建子类的方式进行AOP增强植入的。由于使用final、static、private修饰符的方法都不能被子类覆盖,相应的,这些方法将不能被实施的AOP增强。
115 |
116 | *ps:如果我们自己用jdk动态代理的原始写法,其实可以setAccessible(true)访问private修饰的东西*
117 |
118 | > [spring事务传播级别](https://blog.csdn.net/qq_36094023/article/details/90544286)
119 | >
120 | > [Spring五个事务隔离级别和七个事务传播行为](https://www.cnblogs.com/wj0816/p/8474743.html)
121 | >
122 | > [transactionTemplate用法](https://blog.csdn.net/qq_20009015/article/details/84863295)
123 | >
124 | > [Spring中Transactional放在类级别和方法级别上有什么不同?](https://zhidao.baidu.com/question/1500582510886123139.html)
125 | >
126 | > [Spring @Transactional属性可以在私有方法上工作吗?](http://www.mianshigee.com/question/172320jjt/)
127 | >
128 | > [Aspectj与Spring AOP比较](https://www.jianshu.com/p/872d3dbdc2ca)
129 | >
130 | > [JDK动态代理](https://www.cnblogs.com/zuidongfeng/p/8735241.html)
131 | >
132 | > [Spring : REQUIRED和NESTED的区别](https://blog.csdn.net/qq_31967241/article/details/107764496)
133 | >
134 | > [不同类的方法 事务问题_Spring 事务原理和使用,看完这一篇就足够了](https://blog.csdn.net/weixin_42367472/article/details/112636467)
135 | >
136 | > [Spring中同一类@Transactional修饰方法相互调用的坑](https://blog.csdn.net/fsjwin/article/details/109211355)
137 | >
138 | > [@Transactional同类方法调用不生效及解决方法](https://blog.csdn.net/weixin_38898423/article/details/113835501)
139 | >
140 | > [Spring中事务的Propagation(传播性)的取值](https://blog.csdn.net/zhang_shufeng/article/details/38706725)
141 | >
142 | > [spring+mybatis 手动开启和提交事务](https://www.cnblogs.com/xujishou/p/6210012.html)
143 | >
144 | > [AopContext.currentProxy()](https://blog.csdn.net/qq_29860591/article/details/108728150)
145 |
146 | # 4. 异常处理
147 |
148 | > [Spring的@ExceptionHandler和@RestControllerAdvice使用-随笔 - Ashiamd - 博客园 (cnblogs.com)](https://www.cnblogs.com/Ashiamd/p/15045197.html)
149 |
150 | - 如果项目中Controller继承某个带有@ExceptionHandler注解方法的类,那么Controller抛出异常时,会优先走该@ExceptionHandler注解的方法。
151 | - 此时如果有另外带有@RestControllerAdvice注解的全局异常处理器,其只处理Controller继承的@ExceptionHandler范围外的异常。
152 | - 如果@ExceptionHandler范围很大,比如是Throwable.class,那么所有异常只走Controller继承的异常处理方法,不会经过全局异常处理器。
153 |
154 | (ps:@ExceptionHandler存在多个时,最具体的一个生效,比如Throwable.class和RuntimeException.class,如果抛出后者,则拦截后者的方法生效)
155 |
156 | ```java
157 | // 举例子(下面共1. 2. 3. 三个类):
158 | /*
159 |
160 | 情况一:TestController抛出 ArrayStoreException,那么被ExceptionHandlers处理(如果ExceptinonHandlers再上抛,就直接服务停止了,而不是被ExceptionHandlers处理)
161 |
162 | 情况二:TestController抛出 ArrayStoreException以外的异常(超出AbstractController拦截的范围),那么被ExceptionHandlers处理(同样如果再上抛,直接服务停止)
163 |
164 | 情况三:假设AbstractController中的handleThrowable上的@ExceptionHandler(ArrayStoreException.class)改成@ExceptionHandler(Throwable.class),那么所有异常只被AbstractController处理,全局异常处理器无作为(当然如果其他Controller没有继承AbstractController的话,就会抛异常被全局异常处理器ExceptionHandlers处理)。
165 |
166 | */
167 |
168 | // 1. 带有@ExceptionHandler注解方法的 AbstractController
169 | public abstract class AbstractController {
170 | @ExceptionHandler(ArrayStoreException.class)
171 | public Object handleThrowable(HttpServletRequest request, Throwable e) {}
172 | }
173 |
174 | // 2. 全局异常处理器
175 | @RestControllerAdvice
176 | public class ExceptionHandlers {
177 | @ExceptionHandler(Throwable.class)
178 | public String handleThrowable(HttpServletRequest request, Throwable e) {}
179 | }
180 |
181 | // 3. 普通Controller
182 | @RestController
183 | @RequestMapping("/test")
184 | public class TestController extends AbstractController {
185 | @GetMapping("/test001")
186 | public String test001() throws Throwable {}
187 | }
188 | ```
189 |
190 |
--------------------------------------------------------------------------------
/docs/study/BigData/Hadoop/Hadoop官方教程笔记.md:
--------------------------------------------------------------------------------
1 | # Hadoop官方教程笔记
2 |
3 | # 1. Hadoop: 部署单节点集群
4 |
5 | ## 1. 目的
6 |
7 | 部署单节点Hadoop,以便之后使用Hadoop MapReduce和分布式文件系统HDFS
8 |
9 | ## 2. 准备工作
10 |
11 | ### 2.1 平台
12 |
13 | 一般建议用Linux
14 |
15 | ### 2.2 需要的软件
16 |
17 | 1. Java
18 | 2. ssh(顺带建议安装pdsh管理ssh资源)
19 |
20 | ### 2.3 安装软件
21 |
22 | 在Ubuntu发行版本上
23 |
24 | ```shell
25 | $ sudo apt-get install ssh
26 | $ sudo apt-get install pdsh
27 | ```
28 |
29 | ## 3. 下载
30 |
31 | > [下载地址](https://www.apache.org/dyn/closer.cgi/hadoop/common/)
32 | >
33 | > [文件签名校验教程](https://www.apache.org/info/verification.html)
34 |
35 | 这里我选择[最新的稳定版本3.3.0](https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.0.tar.gz)进行下载。(mac Big Sur 11.0.1)
36 |
37 | ## 4. 部署Hadoop集群
38 |
39 | 1. 解压压缩包
40 | 2. 确保有配置java的环境变量"JAVA_HOME"
41 | 3. 尝试运行hadoop。`bin/hadoop`。正常应该有输出关于hadoop如何使用的一些文字介绍
42 |
43 | Hadoop支持3种集群部署模式:
44 |
45 | - [Local (Standalone) Mode](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation) (单机模式)
46 | - [Pseudo-Distributed Mode](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation) (伪分布式模式)
47 | - [Fully-Distributed Mode](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Fully-Distributed_Operation) (完全分布式模式)
48 |
49 | ### 4.1 单机操作
50 |
51 | 默认情况下,hadoop就是作为单个java程序,以非分布式的模式运行。单节点模式适合debug调试。
52 |
53 | 下面以解压后的conf目录作为输入,查找匹配指定正则表达式规则的匹配项,将结果输出到我们自定义的目录。
54 |
55 | ```shell
56 | $ mkdir input
57 | $ cp etc/hadoop/*.xml input
58 | $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
59 | $ cat output/*
60 | ```
61 |
62 | 最后我获取到的内容是`1 dfsadmin`
63 |
64 | ### 4.2 伪分布式操作
65 |
66 | Hadoop可以在一个节点上以伪分布式模式运行,每个Hadoop守护进程都在单独的Java进程中运行。
67 |
68 | #### 4.2.1 配置
69 |
70 | Use the following:
71 |
72 | etc/hadoop/core-site.xml:
73 |
74 | ```xml
75 |
76 |
77 | fs.defaultFS
78 | hdfs://localhost:9000
79 |
80 |
81 | ```
82 |
83 | etc/hadoop/hdfs-site.xml:
84 |
85 | ```xml
86 |
87 |
88 | dfs.replication
89 | 1
90 |
91 |
92 | ```
93 |
94 | > 这两个文件的\\ 本来都是空的。
95 |
96 | #### 4.2.2 设置免密ssh
97 |
98 | > mac需要在系统设置的"共享"里设置"允许远程登录"
99 | >
100 | > [关于Mac中ssh: connect to host localhost port 22: Connection refused](https://blog.csdn.net/u011068475/article/details/52883677)
101 |
102 | Now check that you can ssh to the localhost without a passphrase:
103 |
104 | ```ssh
105 | $ ssh localhost
106 | ```
107 |
108 | If you cannot ssh to localhost without a passphrase, execute the following commands:
109 |
110 | ```ssh
111 | $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
112 | $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
113 | $ chmod 0600 ~/.ssh/authorized_keys
114 | ```
115 |
116 | #### 4.2.3 执行
117 |
118 | > [MapReduce和YARN区别](https://blog.csdn.net/hahachenchen789/article/details/80527706)
119 |
120 | The following instructions are to run a MapReduce job locally. If you want to execute a job on YARN, see [YARN on Single Node](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#YARN_on_Single_Node).
121 |
122 | 1. Format the filesystem:
123 |
124 | ```
125 | $ bin/hdfs namenode -format
126 | ```
127 |
128 | 2. Start NameNode daemon and DataNode daemon:
129 |
130 | ```
131 | $ sbin/start-dfs.sh
132 | ```
133 |
134 | The hadoop daemon log output is written to the `$HADOOP_LOG_DIR` directory (defaults to `$HADOOP_HOME/logs`).
135 |
136 | 3. Browse the web interface for the NameNode; by default it is available at:
137 |
138 | - NameNode - `http://localhost:9870/`
139 |
140 | 4. Make the HDFS directories required to execute MapReduce jobs:
141 |
142 | ```
143 | $ bin/hdfs dfs -mkdir /user
144 | $ bin/hdfs dfs -mkdir /user/
145 | ```
146 |
147 | 5. Copy the input files into the distributed filesystem:
148 |
149 | ```
150 | $ bin/hdfs dfs -mkdir input
151 | $ bin/hdfs dfs -put etc/hadoop/*.xml input
152 | ```
153 |
154 | 6. Run some of the examples provided:
155 |
156 | ```
157 | $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
158 | ```
159 |
160 | 7. Examine the output files: Copy the output files from the distributed filesystem to the local filesystem and examine them:
161 |
162 | ```
163 | $ bin/hdfs dfs -get output output
164 | $ cat output/*
165 | ```
166 |
167 | or
168 |
169 | View the output files on the distributed filesystem:
170 |
171 | ```
172 | $ bin/hdfs dfs -cat output/*
173 | ```
174 |
175 | 8. When you’re done, stop the daemons with:
176 |
177 | ```
178 | $ sbin/stop-dfs.sh
179 | ```
180 |
181 | #### 4.2.4 YARN on a Single Node
182 |
183 | You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition.
184 |
185 | The following instructions assume that 1. ~ 4. steps of [the above instructions](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Execution) are already executed.
186 |
187 | 1. Configure parameters as follows:
188 |
189 | `etc/hadoop/mapred-site.xml`:(这个文件的` `原本是空的)
190 |
191 | ```
192 |
193 |
194 | mapreduce.framework.name
195 | yarn
196 |
197 |
198 | mapreduce.application.classpath
199 | $HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
200 |
201 |
202 | ```
203 |
204 | `etc/hadoop/yarn-site.xml`:(这个文件的` `原本是空的)
205 |
206 | ```
207 |
208 |
209 | yarn.nodemanager.aux-services
210 | mapreduce_shuffle
211 |
212 |
213 | yarn.nodemanager.env-whitelist
214 | JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
215 |
216 |
217 | ```
218 |
219 | 2. Start ResourceManager daemon and NodeManager daemon:
220 |
221 | ```
222 | $ sbin/start-yarn.sh
223 | ```
224 |
225 | 3. Browse the web interface for the ResourceManager; by default it is available at:
226 |
227 | - ResourceManager - `http://localhost:8088/`
228 |
229 | 4. Run a MapReduce job.
230 |
231 | 5. When you’re done, stop the daemons with:
232 |
233 | ```
234 | $ sbin/stop-yarn.sh
235 | ```
236 |
237 | ### 4.3 完全分布式操作
238 |
239 | For information on setting up fully-distributed, non-trivial clusters see [Cluster Setup](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html).
240 |
241 | # 5. mac安装hadoop
242 |
243 | >[mac安装hadoop及配置伪分布式](https://blog.csdn.net/weixin_44570264/article/details/106872445) <= 跟着这个确实可以
244 | >
245 | >```shell
246 | >vim ~/.bash_profile
247 | >
248 | ># hadoop-3.3.0 第一条是hadoop的解压目录
249 | >export HADOOP_HOME=/Users/ashiamd/mydocs/dev-tools/hadoop/hadoop-3.3.0
250 | >export HADOOP_INSTALL=$HADOOP_HOME
251 | >export HADOOP_MAPRED_HOME=$HADOOP_HOME
252 | >export HADOOP_COMMON_HOME=$HADOOP_HOME
253 | >export HADOOP_HDFS_HOME=$HADOOP_HOME
254 | >export YARN_HOME=$HADOOP_HOME
255 | >export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
256 | >export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
257 | >export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
258 | >```
259 |
260 |
--------------------------------------------------------------------------------
/docs/study/LeetCode_Study/数据结构与算法/二叉树.md:
--------------------------------------------------------------------------------
1 | # 二叉树
2 |
3 | > [探索--二叉树](https://leetcode-cn.com/leetbook/detail/data-structure-binary-tree/)
4 |
5 | ## 01 概述
6 |
7 | ## 02 树的遍历
8 |
9 | ### 二叉树的前序遍历
10 |
11 | 语言:java
12 |
13 | 思路:题目要求递归和迭代
14 |
15 | 代码1(0ms,100%):递归
16 |
17 | ```java
18 | /**
19 | * Definition for a binary tree node.
20 | * public class TreeNode {
21 | * int val;
22 | * TreeNode left;
23 | * TreeNode right;
24 | * TreeNode() {}
25 | * TreeNode(int val) { this.val = val; }
26 | * TreeNode(int val, TreeNode left, TreeNode right) {
27 | * this.val = val;
28 | * this.left = left;
29 | * this.right = right;
30 | * }
31 | * }
32 | */
33 | class Solution {
34 | List res = new LinkedList<>();
35 |
36 | public List preorderTraversal(TreeNode root) {
37 | dfs(root);
38 | return res;
39 | }
40 |
41 | public void dfs(TreeNode root){
42 | if(root==null){
43 | return;
44 | }
45 | res.add(root.val);
46 | dfs(root.left);
47 | dfs(root.right);
48 | }
49 | }
50 | ```
51 |
52 | 代码2(0ms,100%):迭代。借用数据结构栈,暂存右节点。
53 |
54 | 前序:中左右,则暂存每次要遍历的节点(第一个root以及之后每次的右、左节点)。由于右子树最后遍历,所以压栈底的是右子树(如果有的话)。
55 |
56 | ```java
57 | class Solution {
58 | public List preorderTraversal(TreeNode root) {
59 |
60 | List res = new LinkedList<>();
61 | LinkedList stack = new LinkedList<>();
62 | if(root!=null){
63 | stack.addFirst(root);
64 | }
65 | while(!stack.isEmpty()){
66 | TreeNode node = stack.pollFirst();
67 | res.add(node.val);
68 | if(node.right!=null){
69 | stack.addFirst(node.right);
70 | }
71 | if(node.left!=null){
72 | stack.addFirst(node.left);
73 | }
74 | }
75 | return res;
76 | }
77 | }
78 | ```
79 |
80 | ### 二叉树的中序遍历
81 |
82 | 语言:java
83 |
84 | 思路:题目要求递归和迭代
85 |
86 | 代码1(0ms,100%):递归
87 |
88 | ```java
89 | class Solution {
90 | List res = new LinkedList<>();
91 |
92 | public List inorderTraversal(TreeNode root) {
93 | dfs(root);
94 | return res;
95 | }
96 |
97 | public void dfs(TreeNode root){
98 | if(root==null){
99 | return;
100 | }
101 | dfs(root.left);
102 | res.add(root.val);
103 | dfs(root.right);
104 | }
105 | }
106 | ```
107 |
108 | 代码2(0ms):迭代
109 |
110 | ```java
111 | class Solution {
112 | public List inorderTraversal(TreeNode root) {
113 | List res = new LinkedList<>();
114 |
115 | LinkedList stack = new LinkedList<>();
116 |
117 | while (root != null || !stack.isEmpty()) {
118 |
119 | // 先一路往左
120 | while(root!=null){
121 | stack.addFirst(root);
122 | root = root.left;
123 | }
124 |
125 | root = stack.pollFirst();
126 | res.add(root.val);
127 | root = root.right;
128 | }
129 |
130 | return res;
131 | }
132 | }
133 | ```
134 |
135 | ### 二叉树的后序遍历
136 |
137 | 语言:java
138 |
139 | 思路:要求递归和迭代
140 |
141 | 代码1(0ms):递归
142 |
143 | ```java
144 | class Solution {
145 | List res = new LinkedList<>();
146 |
147 | public List postorderTraversal(TreeNode root) {
148 | dfs(root);
149 | return res;
150 | }
151 |
152 | public void dfs(TreeNode root){
153 | if(root==null){
154 | return;
155 | }
156 | dfs(root.left);
157 | dfs(root.right);
158 | res.add(root.val);
159 | }
160 | }
161 | ```
162 |
163 | 代码2(1ms,51.49%):迭代。
164 |
165 | 这个需要注意的是后续遍历的右节点判断时,可能出现反复在当前节点和右节点之间访问的死循环,所以多用个临时节点判断上一个节点是否为右节点。
166 |
167 | ```java
168 | class Solution {
169 | public List postorderTraversal(TreeNode root) {
170 | List res = new LinkedList<>();
171 | LinkedList stack = new LinkedList<>();
172 | TreeNode pre =null;
173 | while (root != null || !stack.isEmpty()) {
174 |
175 | // 先一直往左
176 | while(root!=null){
177 | stack.addFirst(root);
178 | root = root.left;
179 | }
180 |
181 | root = stack.pollFirst();
182 | if (root.right == null || root.right == pre) {
183 | res.add(root.val);
184 | pre = root;
185 | root = null;
186 | } else {
187 | stack.addFirst(root);
188 | root = root.right;
189 | }
190 | // 左右中
191 | }
192 | return res;
193 | }
194 | }
195 | ```
196 |
197 | 参考代码1(0ms):
198 |
199 | > [迭代解法,时间复杂度 O(n),空间复杂度 O(n)](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/die-dai-jie-fa-shi-jian-fu-za-du-onkong-jian-fu-za/)
200 |
201 | 这个模版可以套用(用于前序、中序、后序)
202 |
203 | 这个思路很有意思:
204 |
205 | 原本前序遍历使用Stack暂存中间节点,List存遍历的结果值,这时候遍历顺序为“根左右”;那么我们要的后续遍历是“左右根”。
206 |
207 | 如果把Stack暂存节点变成暂存右节点,那么就"根左右"->"根右左";
208 |
209 | 这时候再把List的添加顺序变成类似栈的加入到头部,那么最后输出的遍历顺序就完全颠倒,于是有"根左右"->"根右左"->"左右根"。
210 |
211 | ``` java
212 | class Solution {
213 | public List postorderTraversal(TreeNode root) {
214 | LinkedList result = new LinkedList<>();
215 | LinkedList stack = new LinkedList<>();
216 | while (root != null || !stack.isEmpty()) {
217 | if (root != null) {
218 | stack.push(root);
219 | result.addFirst(root.val);
220 | root = root.right;
221 | } else {
222 | root = stack.pop();
223 | root = root.left;
224 | }
225 | }
226 | return result;
227 | }
228 | }
229 | ```
230 |
231 | 参考后重写(0ms):
232 |
233 | ```java
234 | class Solution {
235 | public List postorderTraversal(TreeNode root) {
236 | LinkedList res = new LinkedList<>();
237 | Deque deque = new LinkedList<>();
238 | while(root!=null||!deque.isEmpty()){
239 | if(root!=null){
240 | res.addFirst(root.val);
241 | deque.addFirst(root);
242 | root = root.right;
243 | }else{
244 | root = deque.pollFirst();
245 | root = root.left;
246 | }
247 | }
248 | return res;
249 | }
250 | }
251 | ```
252 |
253 | ### 二叉树的层序遍历
254 |
255 | 语言:java
256 |
257 | 思路:BFS。这类经典的BFS诀窍就是使用Queue队列
258 |
259 | 代码(1ms,92.96%):
260 |
261 | ```java
262 | class Solution {
263 | public List> levelOrder(TreeNode root) {
264 | List> res = new LinkedList<>();
265 | Queue queue = new LinkedList<>();
266 |
267 | if(root!=null){
268 | queue.add(root);
269 | }
270 | while(!queue.isEmpty()){
271 | int size = queue.size();
272 | TreeNode cur;
273 | List tmp = new LinkedList<>();
274 | for(int i = 0 ;i> ans=new ArrayList<>();
297 | public List> levelOrder(TreeNode root) {
298 |
299 | //Dueue dueue=new Dueue<>();
300 | //dueue.push(root);
301 | getLeverOrder(root,1);
302 | return ans;
303 | }
304 | public void getLeverOrder(TreeNode root,int level){
305 | if(root==null)return;
306 | if(level>ans.size()){
307 | ArrayList res=new ArrayList<>();
308 | res.add(root.val);
309 | ans.add(res);
310 |
311 | }else{
312 | ans.get(level-1).add(root.val);
313 | }
314 | getLeverOrder(root.left,level+1);
315 | getLeverOrder(root.right,level+1);
316 | return;
317 | }
318 | }
319 | ```
320 |
321 | 参考后重写(1ms,92.96%):
322 |
323 | ```java
324 | class Solution {
325 | List> res = new LinkedList<>();
326 |
327 | /**
328 | * DFS层次遍历
329 | * @param root
330 | * @return
331 | */
332 | public List> levelOrder(TreeNode root) {
333 | dfs(root,1);
334 | return res;
335 | }
336 |
337 | public void dfs(TreeNode root,int level){
338 | if(root==null){
339 | return;
340 | }
341 | if(level>res.size()){
342 | List tmp = new LinkedList<>();
343 | res.add(tmp);
344 | }
345 | res.get(level-1).add(root.val);
346 | dfs(root.left,level+1);
347 | dfs(root.right,level+1);
348 | }
349 | }
350 | ```
351 |
352 |
--------------------------------------------------------------------------------
/docs/study/网络安全/SSO/CAS学习杂记.md:
--------------------------------------------------------------------------------
1 | # CAS学习杂记
2 |
3 | > 理论文章
4 | >
5 | > - [单点登录(SSO)看这一篇就够了 - 简书 (jianshu.com)](https://www.jianshu.com/p/75edcc05acfd)
6 | >- [cas 单点登录 登出流程说明_这是一个懒人的博客-CSDN博客_cas单点退出流程](https://blog.csdn.net/qq_30062125/article/details/84983764)
7 | > - [单点登录CAS实现中,感觉只要TGC就足够了,干嘛还要ST的_百度知道 (baidu.com)](https://zhidao.baidu.com/question/427773428303757572.html)
8 | >
9 | > 1. 单点登录的过程中,第一步应用服务器将请求重定向到认证服务器,用户输入账号密码认证成功后,只是在浏览器和认证服务器之间建立了信任(TGC),但是浏览器和应用服务器之间并没有建立信任。
10 | >
11 | > 2. ST是CAS认证中心认证成功后返回给浏览器,浏览器带着它去访问应用服务器,应用服务器再凭它去认证中心验证你这个用户是否合法。只有这样,浏览器和应用服务器才能建立信任的会话。
12 | > 3. 而TGC的作用主要是用于实现单点登录,就是当浏览器要访问应用服务器2时,应用服务器2也会重定向到认证服务器,但是此时由于TGC的存在,认证服务器信任了该浏览器,就不需要用户再输入账号密码了,直接返回给浏览器ST,重复2中的步骤。
13 | > - [CAS票据之ST与TGT过期策略详细说明_Java精选-CSDN博客](https://blog.csdn.net/afreon/article/details/53183157) <= 结合下面的大流程图,很清晰了。
14 | > - [CAS实现单点登录SSO执行原理探究(终于明白了)_javaloveiphone的专栏-CSDN博客_cas sso原理](https://blog.csdn.net/javaloveiphone/article/details/52439613) <= 极力推荐,超高赞文章!(多图流、完整登录退出流程)
15 | >
16 | > 实战文章
17 | >
18 | > - [基于CAS实现单点登录(SSO):工作原理_时光在路上-CSDN博客](https://blog.csdn.net/tch918/article/details/19930037)
19 | >
20 | > - [基于CAS的SSO搭建详细图文_胡云台的博客-CSDN博客](https://blog.csdn.net/qq_36879870/article/details/88544468)
21 | >
22 | > - [基于CAS的SSO(单点登录)实例 - 梦玄庭 - 博客园 (cnblogs.com)](https://www.cnblogs.com/java-meng/p/7269990.html)
23 | >
24 | > - [单点登录_HealerJean梦想博客-CSDN博客](https://blog.csdn.net/u012954706/category_7482523.html)
25 | >
26 | > - [实战springboot+CAS单点登录系统-B站视频](https://www.bilibili.com/video/BV1xy4y1r7BU)
27 | >
28 | > 下面1.CAS流程 ~ 3. 运行CAS-server根据该视频学习,后面看client的教程一般,就看个大概没往下了。
29 | >
30 | > - [SpringBoot 简单实现仿CAS单点登录系统_ljk126wy的博客-CSDN博客](https://blog.csdn.net/ljk126wy/article/details/90640608) <=. 可参考的文章
31 |
32 | # 1. CAS流程
33 |
34 | > - [单点登录(SSO)看这一篇就够了 - 简书 (jianshu.com)](https://www.jianshu.com/p/75edcc05acfd)
35 | > - [cas 单点登录 登出流程说明_这是一个懒人的博客-CSDN博客_cas单点退出流程](https://blog.csdn.net/qq_30062125/article/details/84983764)
36 |
37 | 
38 |
39 | ---
40 |
41 | - TGT:Ticket Granted Ticket(票根,可以签发ST)
42 | - TGC:Ticket Granted Cookie(cookie中CASTGC的value),存在Cookie中,可以通过他找到TGT。
43 | - ST:Service Ticket,是TGT生成的,是每个应用的票据,就是流程中的ticket
44 |
45 | 单点登录:
46 |
47 | 
48 |
49 | 单点退出(也可以是先访问应用系统,看具体怎么实现):
50 |
51 | 
52 |
53 |
54 |
55 | # 2. 搭建Tomcat启用HTTPS
56 |
57 | CAS实现的SSO,需要HTTPS保证数据安全。
58 |
59 | > + **jdk1.8.0_261**
60 | > + **apache-tomcat-9.0.52**
61 | > + **cas-server-webapp-tomcat-5.3.14.war**
62 |
63 | ## 2.1 生成密钥和证书
64 |
65 | > [Keytool命令详解_老猿说说专栏-CSDN博客_keytool](https://blog.csdn.net/zlfing/article/details/77648430)
66 | >
67 | > [Windows下如何把安全证书导入到JDK的cacerts证书库_liruiqing的专栏-CSDN博客](https://blog.csdn.net/liruiqing/article/details/80416740)
68 | >
69 | > Keytool 是一个Java 数据证书的管理工具,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中。
70 | >
71 | > 在keystore里,包含两种数据:
72 | >
73 | > + 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
74 | > + 可信任的证书实体(trusted certificate entries)——只包含公钥
75 | >
76 | > ailas(别名)每个keystore都关联一个独一无二的alias,这个alias通常不区分大小写
77 | >
78 | > -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
79 | >
80 | > -keyalg 指定密钥的[算法](http://lib.csdn.net/base/datastructure) (如 RSA DSA(如果不指定默认采用DSA))
81 | >
82 | > -v 显示密钥库中的证书详细信息
83 | >
84 | > -list 显示密钥库中的证书信息 keytool -list -v -keystore 指定keystore -storepass 密码
85 | >
86 | > -storepass 指定密钥库的密码(获取keystore信息所需的密码)
87 | >
88 | > -export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
89 | >
90 | > -file 参数指定导出到文件的文件名
91 | >
92 | > + 查看JDK的cacerts 中的证书列表:
93 | >
94 | > `keytool -list -v -keystore "/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/lib/security/cacerts" -storepass changeit`
95 | >
96 | > + 删除的cacerts 中指定名称的证书:
97 | >
98 | > `keytool -delete -alias 证书别名 -keystore "/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/lib/security/cacerts" -storepass changeit`
99 |
100 | 1. keystore生成
101 |
102 | `keytool -genkey -v -alias 别名 -keyalg RSA -keystore ./密钥库名.keystore`
103 |
104 | 2. keystore查看
105 |
106 | `keytool -list -v -keystore ./密钥库名.keystore`
107 |
108 | 3. 从密钥库导出证书
109 |
110 | `keytool -export -alias 别名 -file ./证书名.crt -keystore ./密钥库名.keystore`
111 |
112 | 4. 查看证书
113 |
114 | `keytool -printcert -file 证书名.crt`
115 |
116 | 5. 证书导入到JDK证书库
117 |
118 | `keytool -import -trustcacerts -alias 指定导入证书的别名 -file ./证书名.crt -keystore "/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/lib/security/cacerts" -storepass changeit`
119 |
120 | > **之后实验完之后,记得把这个我们自己新建的cert证书从JDK证书库中删除!!**
121 | >
122 | > `keytool -delete -alias 证书别名 -keystore "/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/lib/security/cacerts" -storepass changeit`
123 |
124 | ## 2.2 配置Tomcat支持HTTPS
125 |
126 | > [启动tomcat: Permission denied错误_Pompeii的专栏-CSDN博客](https://blog.csdn.net/Pompeii/article/details/40262785)
127 | >
128 | > [tomcat9.0配置https_程序员修炼之路的博客-CSDN博客](https://blog.csdn.net/qq_34756221/article/details/103957671)
129 |
130 | 1. 修改tomcat9安装目录下`conf/server.xml`
131 |
132 | ```xml
133 |
134 |
139 | ```
140 |
141 | 2. 启动tomcat
142 |
143 | ```shell
144 | $ bin/startup.sh
145 |
146 | Using CATALINA_BASE: /Users/ashiamd/mydocs/dev-tools/tomcat/apache-tomcat-10.0.10
147 | Using CATALINA_HOME: /Users/ashiamd/mydocs/dev-tools/tomcat/apache-tomcat-10.0.10
148 | Using CATALINA_TMPDIR: /Users/ashiamd/mydocs/dev-tools/tomcat/apache-tomcat-10.0.10/temp
149 | Using JRE_HOME: /Library/Java/JavaVirtualMachines/adoptopenjdk-11-openj9.jdk/Contents/Home
150 | Using CLASSPATH: /Users/ashiamd/mydocs/dev-tools/tomcat/apache-tomcat-10.0.10/bin/bootstrap.jar:/Users/ashiamd/mydocs/dev-tools/tomcat/apache-tomcat-10.0.10/bin/tomcat-juli.jar
151 | Using CATALINA_OPTS:
152 | Tomcat started.
153 | ```
154 |
155 | > 如果Permission denied
156 | >
157 | > 则执行`chmod u+x *.sh`
158 |
159 | 3. 访问本地tomcat
160 |
161 | *(google内核的浏览器可能没有继续浏览本地签证的页面的选项,换safari浏览器就好了)*
162 |
163 | ```shell
164 | $ curl http://localhost:8080/
165 |
166 | $ curl https://localhost:8443/
167 | curl: (60) SSL certificate problem: self signed certificate
168 | More details here: https://curl.haxx.se/docs/sslcerts.html
169 |
170 | curl failed to verify the legitimacy of the server and therefore could not
171 | establish a secure connection to it. To learn more about this situation and
172 | how to fix it, please visit the web page mentioned above.
173 |
174 | $ curl --insecure https://localhost:8443
175 | ```
176 |
177 | # 3. 运行CAS-server
178 |
179 | 1. 下载CAS-server的war包
180 |
181 | > [Central Repository: org/apereo/cas/cas-server-webapp-tomcat (maven.org)](https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/) <= 从视频教程里找到的war包下载地址,藏得好深。。。
182 |
183 | 2. 将war包移动到tomcat的webapps目录下
184 | 3. 解压war包,将解压后的文件夹重命名为cas
185 | 4. 启动tomcat
186 | 5. 访问`https://localhost:8443/cas`
187 |
188 | 6. war包下的`WEB-INF/classes/application.properties`查看账号密码
189 |
190 | ```properties
191 | ##
192 | # CAS Authentication Credentials
193 | #
194 | cas.authn.accept.users=casuser::Mellon
195 | ```
196 |
197 | 7. 修改`WEB-INF/classes/log4j2.xml`的日志路径
198 |
199 | ```xml
200 |
201 |
202 |
203 |
204 | 自定义日志路径(文件夹)
205 |
206 | ...
207 | ```
208 |
209 | 8. 配置数据库、MD5加密等
210 |
211 | > 我主要就为了体验部署一下,所以这些就不弄了。
212 |
213 |
214 |
215 |
--------------------------------------------------------------------------------
/docs/study/Linux/Shell学习.md:
--------------------------------------------------------------------------------
1 | # Shell学习
2 |
3 | > 结合网课、课内教材、网文学习
4 | >
5 | > [【IT】Shell编程从入门到放弃(2016)【全20集】]( https://www.bilibili.com/video/av8104450?p=12 )
6 |
7 | ## 常用指令
8 |
9 | | 指令/参数 | 使用/作用 |
10 | | ---- | ------------------------------------------------------------ |
11 | | $? | 保存前一个命令的返回码 |
12 | | $* | 传给脚本或函数的参数组成的单个字符串,即除脚本名称后从第一个参数开始的字符串,每个参数以$IFS分割(一般内部域分隔符$IFS为一个空格) |
13 | | $# | 传给脚本/函数的参数的个数 |
14 |
15 |
16 |
17 | 颜色字体
18 |
19 | -e "\033[3*m内容\033[0m" 也可以是 4*m;后面如果是1m就后面的颜色都变化
20 |
21 |
22 |
23 | | 指令/参数 | 使用/作用 |
24 | | --------- | ------------------------------------ |
25 | | -d file | 返回真的条件,file存在并且是一个目录 |
26 | | -e file | File 存在 |
27 | | -f file | file存在并且是一个普通文件 |
28 |
29 |
30 |
31 | select语句,配合case语句使用
32 |
33 |
34 |
35 | sed ‘/^/&123’在每行行首插入123
36 |
37 |
38 |
39 | grep -E “正则表达式”文件 (不加-E不会有输出)
40 |
41 |
42 |
43 | awk '{print $1}' 打印第一列
44 |
45 | awk -F: 'print$1' 以“:”冒号为分隔符,打印第一列
46 |
47 |
48 |
49 | find 目录 -maxdepth 最深遍历层数 -name "文件名" 或者 -type 类型(比如f,就是普通文件)-mtime +30(三十天以前的,要是要今天的,可以是 -1)
50 |
51 |
52 |
53 | -exec 指令 {} \ ; 大括号就是等于前面执行的指令获取的结果
54 |
55 | |xargs rm -f {} \; 看情况2个都可以不用 \;
56 |
57 |
58 |
59 | 下面是运维的增量备份、全备份使用
60 |
61 | tar -g 文件,全备份
62 |
63 | echo \`date +%d\` 日; \`date +%u\` 周几;
64 |
65 |
66 |
67 | 运维根据恶意访问(22端口多次输入密码错误,强封IP)
68 |
69 |
70 |
71 | 运维根据脚本同步不同服务器的文件rsync
72 |
73 |
74 |
75 | Shell批量监控服务发送邮件报警
76 |
77 | ---
78 |
79 | # web开发自己用到的常用Linux指令
80 |
81 | ## 1. Linux远程服务器文件的上传、下载
82 |
83 | > [linux系统下的rz、sz详解](https://blog.csdn.net/mynamepg/article/details/81118580)
84 |
85 | 1. sz:将选定的文件发送(send)到本地机器
86 | 2. rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
87 |
88 | ## 2. linux下的文本去重方法
89 |
90 | > [linux下的几种文本去重方法](https://blog.csdn.net/qq_40809549/article/details/82591302)
91 |
92 | 1. 基础使用
93 |
94 | awk命令去重输出:awk '!x[$0]++' filename
95 |
96 | 应用扩展1:cat Afile Bfile|awk '!x[$0]++' >Cfile
97 |
98 | 依次输出A、B两个文件内容,去掉B中与A重复的行,输出到C;多应用于日志拼接。
99 |
100 | 灵活扩展2:cat Afile|awk '!x[$0]++'
101 |
102 | 也可以写作:awk '!x[$0]++' Afile
103 |
104 | 去掉重复的行,输出A文件
105 |
106 | 2. 复制.bash_history到本地(配合sz指令)
107 |
108 | 先到当前用户根目录,使用ls -a确保有.bash_history文件
109 |
110 | + 使用去重指令把去重后的文件复制出来。
111 |
112 | cat .bash_history|awk '!x[$0]++' > historyXXXX.txt
113 |
114 | + 使用sz指令把文件传到本地
115 |
116 | sz historyXXXX.txt
117 |
118 | ## 3. MongoDB的启动和停止
119 |
120 | > [Centos环境下安装mongoDB](https://www.cnblogs.com/layezi/p/7290082.html)
121 |
122 | 1. MongoDB启动
123 |
124 | sudo systemctl start mongod.service
125 |
126 | 2. MongoDB停止
127 |
128 | sudo systemctl stop mongod.service
129 |
130 | 3. MongoDB重启
131 |
132 | sudo systemctl restart mongod.service
133 |
134 | ## 4. 查看进程指令
135 |
136 | > [Linux ps命令](https://www.runoob.com/linux/linux-comm-ps.html)
137 |
138 | 1. 查看指定的程序是否运行
139 |
140 | ps -ef|grep '程序名'
141 |
142 | + 查看mongod是否启动
143 |
144 | ps -ef|grep 'mongod'
145 |
146 | + 查看是否有java程序运行中(比如springboot项目)
147 |
148 | ps -ef|grep java
149 |
150 | ## 5. 查看系统信息
151 |
152 | > [Linux top命令](https://www.runoob.com/linux/linux-comm-top.html)
153 | >
154 | > [linux 下 取进程占用内存(MEM)最高的前10个进程](https://www.cnblogs.com/liuzhengliang/p/5343988.html)
155 | >
156 | > [linux系统查看系统内存和硬盘大小](https://www.cnblogs.com/yangzailu/p/10939126.html)
157 |
158 | 1. top指令(类似windows的任务管理器)
159 |
160 | 2. 查看总的内存使用情况
161 |
162 | ```shell
163 | free -m | sed -n '2p' | awk '{print""($3/$2)*100"%"}'
164 | ```
165 |
166 | 3. linux 下 取进程占用 cpu 最高的前10个进程
167 |
168 | ```shell
169 | ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
170 | ```
171 |
172 | 4. linux 下 取进程占用内存(MEM)最高的前10个进程
173 |
174 | ```shell
175 | ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
176 | ```
177 |
178 | 5. 查看系统运行内存
179 |
180 | ```shell
181 | free -m
182 | # (Gb查看)
183 | free -g
184 | ```
185 |
186 | 6. 查看硬盘大小
187 |
188 | ```shell
189 | df -hl
190 | ```
191 |
192 | ## 6. ICMP检测服务器是否可连通
193 |
194 | > [Linux ping命令](https://www.runoob.com/linux/linux-comm-ping.html)
195 |
196 | 1. ping指令
197 |
198 | ## 7. 简单文件操作
199 |
200 | 1. 简单写一句话到文件中
201 |
202 | echo '我是一句废话' > test.txt
203 |
204 | 2. 删除文件(-r 递归,通常用于删除文件夹及子目录;-f强制删除,不询问)
205 |
206 | rm -rf xxxx
207 |
208 | 3. 查看文件
209 |
210 | less 文件名 (空格下一页,B上一页)
211 |
212 | 4. 监听文件(比如查看实时变化的日志文件)
213 |
214 | tail -f 文件名
215 |
216 | 5. 修改文件权限(4r读+2w写+1x执行=7)
217 |
218 | + rwx 读写执行,777三个分别表示文件拥有者用户权限、用户组权限、其他人权限
219 |
220 | + 数字设定法
221 |
222 | chmod 777 文件名or目录名
223 |
224 | + 字符设定法
225 |
226 | chmod [who] [+|-|=] [mode] 文件名
227 |
228 | > + who表示操作对象
229 | >
230 | > u表示用户;g表示用户组;o表示其他用户;a表示所有用户
231 | >
232 | > + 操作符号含义
233 | >
234 | > +表示添加权限 ;-表示取消权限;=表示删除其他所有权限后重新赋予权限
235 | >
236 | > + mode表示执行的权限
237 | >
238 | > r只读;w只写;x可执行
239 |
240 | 6. 查看当前目录文件
241 |
242 | + 不包括隐藏文件
243 |
244 | ls -l
245 |
246 | + 包括隐藏文件
247 |
248 | ls -al
249 |
250 | 7. 创建目录
251 |
252 | mkdir 目录名
253 |
254 | 8. 打印当前目录
255 |
256 | pwd
257 |
258 | 9. 查找文件
259 |
260 | 1. find <指定目录> <指定条件> <指定动作>
261 |
262 | + 从根目录起最大深度查找7层,查找名字带有‘.txt’的文件
263 |
264 | find / -maxdepth 7 -name '*.txt'
265 |
266 | + 从根目录起最大 深度查找2层,查找类型为‘f’(普通文件类型)的文件
267 |
268 | find / -maxdepth 2 -type f
269 |
270 | + 在logs目录中查找更改时间在5日以前的文件并删除它们
271 |
272 | find logs -type f -mtime +5 -exec rm { } \
273 |
274 | + 在/etc目录中查找文件名以host开头的文件,并将查找到的文件输出到标准输出
275 |
276 | find / etc -name "host*" -print
277 |
278 | ## 8. 查看端口占用
279 |
280 | > [Linux中netstat和ps命令的使用](https://blog.csdn.net/u014303647/article/details/82530495)
281 | >
282 | > [Linux 查看服务器开放的端口号](https://www.cnblogs.com/wanghuaijun/p/8971152.html)
283 |
284 | 1. Linux查看端口号占用命令
285 |
286 | netstat -pan | grep 12345
287 |
288 | `lsof -i :8080`
289 |
290 | 2. 通过进程ID查找程序
291 |
292 | ps -aux | grep 12345
293 |
294 | 3. 通过关键字查找进程
295 |
296 | ps -ef | grep java
297 |
298 | netstat -unltp|grep fdfs
299 |
300 | 4. 使用nmap工具
301 |
302 | + 查看本机开放的端口
303 |
304 | ```shell
305 | nmap 127.0.0.1
306 | ```
307 |
308 |
309 |
310 | ## 9. 强制结束某进程
311 |
312 | 1. kill -9 进程号
313 |
314 | ## 10. 后台运行程序
315 |
316 | > [nohup和&后台运行,进程查看及终止](https://blog.csdn.net/themanofcoding/article/details/81948094)
317 |
318 | 1. nohup
319 |
320 | + 这里举例后台运行springboot程序(后台运行,并指定日志输出位置)
321 |
322 | nohup java -jar SpringBoot的jar包文件.jar > /xxxx/yyy/logs.txt &
323 |
324 | nohup java -jar 自己的springboot项目.jar >日志文件名.log 2>&1 &
325 |
326 | nohup java -jar 自己的springboot项目.jar >/dev/null 2>&1 &
327 |
328 | ## 11. 查看、修改网络接口配置
329 |
330 | > [ifconfig 命令详解](https://blog.csdn.net/u011857683/article/details/83758503)
331 | >
332 | > [linux服务器查看公网IP信息的方法](https://www.cnblogs.com/ksguai/p/6090115.html)
333 | >
334 | > [linux命令之ifconfig详细解释](https://www.cnblogs.com/jxhd1/p/6281427.html)
335 | >
336 | > [ifconfig 命令详解](https://blog.csdn.net/u011857683/article/details/83758503)
337 | >
338 | > [ifconfig 中的 eth0 eth0:1 eth0.1 与 lo](https://www.cnblogs.com/jokerjason/p/10695189.html)]
339 | >
340 | > [Linux 查看网卡全双工 还是半双工 以及设置网卡为半双工](https://www.osgeo.cn/post/30ggg)
341 |
342 | 1. ifconfig
343 |
344 | + 查看自己的公网IP即信息
345 |
346 | ```shell
347 | curl ifconfig.me
348 | #不起效可以用下面这条
349 | curl cip.cc
350 | ```
351 |
352 |
353 |
354 | ## 12. 网络通讯TCP/UDP等
355 |
356 | > [Linux nc命令](https://www.runoob.com/linux/linux-comm-nc.html)
357 | >
358 | > [linux系统下tcpdump和nc工具的使用](https://blog.51cto.com/jachy/1753951)
359 | >
360 | > [Linux基础:用tcpdump抓包](https://www.cnblogs.com/chyingp/p/linux-command-tcpdump.html)
361 |
362 | 1. nc
363 |
364 | + 检测UDP端口是否连通(发UDP包)
365 |
366 | nc -vuz IPv4地址 端口号
367 |
368 | 例如 nc -vuz 123.123.123.123 12345
369 |
370 | 2. tcpdump
371 |
372 | + Linux抓包(比如监听UDP包接收发送等)
373 |
374 | tcpdump -vvv -X -n udp port 端口号
375 |
376 | 例如tcpdump -vvv -X -n udp port 12345
377 |
378 | ## 13. Docker操作RabbitMQ
379 |
380 | > [docker安装与使用](https://www.cnblogs.com/glh-ty/articles/9968252.html)
381 | >
382 | > [docker快速安装rabbitmq](https://www.cnblogs.com/angelyan/p/11218260.html)
383 | >
384 | > [docker 安装rabbitMQ](https://www.cnblogs.com/yufeng218/p/9452621.html)
385 | >
386 | > [阿里云-docker安装rabbitmq及无法访问主页](https://www.cnblogs.com/hellohero55/p/11953882.html)
387 | >
388 | > [docker运行jar文件](https://www.cnblogs.com/zhangwufei/p/9034997.html)
389 |
390 | 1. docker安装RabbitMQ后,启动
391 |
392 | ```shell
393 | docker run -d --name rabbitmq3.8.2 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname XX-xxx-Docker-RabbitMQ-主机名 -e RABBITMQ_DEFAULT_VHOST=XX-xxx-Docker-RabbitMQ-vhost -e RABBITMQ_DEFAULT_USER=用户名 -e RABBITMQ_DEFAULT_PASS=密码 docker中RabbitMQ的imageID
394 | ```
395 |
396 |
397 | 2. docker使用国内的加速源
398 |
399 | ```shell
400 | vim /etc/docker/daemon.json
401 | ```
402 |
403 | 修改上述json文件为以下内容
404 |
405 | ```json
406 | {"registry-mirrors": ["http://95822026.m.daocloud.io","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://almtd3fa.mirror.aliyuncs.com"]}
407 | ```
408 |
409 | ## 14. 用户操作
410 |
411 | 1. 切换用户
412 |
413 | ```she
414 | su 用户名
415 | ```
416 |
417 | ## 15. 网络检测
418 |
419 | 1. 查看是否被木马开后门(查看建立连接的程序)
420 |
421 | ```shell
422 | netstat -nb
423 | ```
424 |
425 |
--------------------------------------------------------------------------------