blog
blog copied to clipboard
笔记
Kubernetes 使用
Kubernetes 开发
Kubernetes 源码分析
Docker
- 安装 Docker
- Docker 搭建自用 registry
- Docker 自定义制作基础镜像
- Docker 的守护进程
- Docker 构建应用
- 基于 Docker 的 Jenkins
- 使用 HAProxy + Keepalived 构建基于 Docker 的高可用负载均衡服务(一)
- Docker 在 Mac 下的 2375 端口问题
Docker 原理相关
Bash
- Bash 脚本判断文件是否增加软链接
- Bash 脚本读取文件,根据空格分割行
- Bash 下 Etcdctl 递归删除某个键
- Bash 批量判断 IP 被占用
- Bash 的集合
- Bash 运算符
- Bash Aliases and Functions
- Bash completion
- Bash 的 IFS
- Bash 格式化输出
- Bash 之 envsubst 的使用
Linux
- Linux 下 screen 的使用
- VIM 使用
- Linux 下 NFS 环境搭建和使用
- Linux 网络相关
- Linux 常用工具
- Linux 下使用 autofs 挂载 nfs
- Linux strace 使用
- Linux iPerf 使用
- Linux cURL 的使用
- Linux 下 rsync 与 scp
- 使用 bind98 搭建 DNS Server
- Linux 下的 SSH
- Linux 下的 logrotate 与 rsylog 使用
- Linux 下的 grep 命令
- Linux 下的 iostat 与 %iowait、%steal、IOPS
- Linux 防火墙以及 Ubuntu 的 GFW
- Linux 下的权限问题
- Linux 下的定时任务
- Linux UpdateMotd 公告板
- Linux 下的 I/O 测试(fio、dd)
- Linux 的 socat
- openSSL 使用
- Git 一些不常用的命令
- LVM 扩容
- LVM 缩容
- LVM cache 使用
- Linux 的 nc
Linux gawk
由于 gawk 语言太过强大,想了想还是把它单独拎出来说。
关于 gawk 与 awk 的区别:gawk(GNU Awk) 是 UNIX awk 程序的 GNU 版本,目前大部分 Linux 系统用到的 awk 默认均为 gawk,可以通过 awk --version 看到
- gawk 的变量与数组
- gawk 的操作符及条件命令
- gawk 的内建函数与自定义函数
- gawk 应用举例
Linux sed
sed 是个很强大的命令,单独拎出来说
Haskell
Ansible
- Ansible 初探
- Ansible 使用 user/pass 方式链接远程主机
- Ansible 推送公钥
- Ansible 修改文件
- Ansible 批量测试机器端口
- Ansible Codition
Nginx/Tengine/Openresty/HAProxy
- 基于 Docker 的 Nginx
- 基于 Docker 的 Tengine
- Nginx 使用(一):location 的匹配
- Nginx 使用(二):代理以及配置
- Nginx 使用(三):负载均衡
- Nginx 使用(四):日志
- Tengine 常用模块
运维相关
DB
- MariaDB 主从同步出错,重新开始
- 数据库三大范式
- MariaDB/MySQL 编写存储过程、视图、触发器
- 数据库的事务
- 数据库的锁
- 数据库的索引
- MariaDB/MySQL 分库分表
- 数据库优化及 SQL 优化
- MariaDB/MySQL 集群
Etcd
Golang
- go 的字符串操作
- defer 关键字使用
- go 的 net/http 包的使用以及了解
- go 的 Timer 和 Ticker 定时器
- go 的反射
- go 的 slice 与数组
- go 的 interface{}
- go 的 function types
- go 的 struct
- go 的 nil
- go 的 select 与 epoll
- go 的错误处理
- go 的 I/O
- go 的 context
Golang 的并发
- 进程、线程、协程
- Go 的 atomic 和 Mutex
- Go 的 channel 使用
- Go channel 公理
- Go 的死锁问题
Golang 应用
- Go 使用 Docker Remote API
- Go 使用 RabbitMQ
- Go 使用 Redis
- Go 实现数据库连接池
RPC 相关
Python
Redis
- Redis 简介及安装
- 基于 Docker 的 Redis 分片集群
- 基于 Docker 的 Redis Sentinel 集群
- Redis 基础存储结构
- Redis 发布与订阅
- Redis 持久化
- Redis 锁
- Redis 优化及扩展
- Redis 使用 Lua 编程
- 使用 Spring Boot + Redis 构建简单应用集群
- Redis 使用:Java 版本
- Redis 使用:Go 版本
MQ 相关
- RabbitMQ 介绍
- 使用 Docker 搭建 RabbitMQ 集群
- RabbitMQ 的使用:Java 版本
- RabbitMQ 的使用:Go 版本
- RabbitMQ 死信队列
- RabbitMQ 优先级队列
- RabbitMQ 实现延迟队列
- RabbitMQ 的 RPC 实现
- RabbitMQ 生产者的消息确认
Java 基础
- Java 的集合相关
- Java 方法按值传递
- Java 的反射及优化
- Java 的代理(动态代理、静态代理、cglib 代理)
- Java 实现回调
- Java 事件与监听器
- Java Annotation 使用
Java Web
- Servlet 多线程安全性问题
- Spring IoC 原理简单分析
- Spring AOP 原理分析
JVM
- JVM 内存区域和 OOM
- JVM 内存溢出及栈溢出演示
- Java GC 介绍
- JVM 监控工具及故障处理工具
- JVM 调优相关
Java 并发
- Java 线程的创建和状态
- Java 线程的中断
- Java 的 Callable、Future
- Java 线程的封闭性与 ThreadLocal
- Java volatile 和 atomic
- Java 线程池
- Java 的 Synchronized
- ReentrantLock、Codition 介绍
- ReentrantLock、ReentrantReadWriteLock 原理及公平性
- Java 线程通信与进程通信总结
- AQS 简单介绍
- 死锁的诊断和避免
- 线程的开销
- 如何减小锁的竞争?
- Java 的线程通信
- Java 线程池原理及简单实现
- CAS 原理及实现
Netty
GOF 设计模式
网络相关
- OSI 七层与四层协议
- HTTP 请求过程
- HTTP 1.0 1.1 2.0 对比
- TCP 的三次握手与四次挥手
- TCP 与 UDP 之间区别
- IPv4 与 IPv6 以及 IP 多播
- 子网划分、路由以及下一跳的计算
- ARP 协议
- DHCP 协议
操作系统
算法
- 位操作
- 进制转换
- 递归
- 链表
- 线性问题总结
- 树
- 图
- LeetCode 刷题