Linux
(一). 从认识操作系统开始
-
- 操作系统简介
- 操作系统简单分类
- 操作系统的内核
- 操作系统的用户态与内核态
- 为什么要有用户态与内核态?
- 用户态切换到内核态的几种方式
- 物理内存RAM(Random Access Memory 随机存储器)
- 虚拟内存(Virtual Memory)
- Swap交换空间
(二). 初探Linux
-
- Linux简介
- Linux诞生简介
-
- Linux的分类
(三) Linux文件系统概览
-
- Linux文件系统简介
- Inode
3.2.1 Inode是什么?有什么作用?
-
- 文件类型与目录结构
- Linux目录树
(四) Linux基本命令
-
- 目录切换命令
- 目录的操作命令(增删改查)
- 文件的操作命令(增删改查)
- 压缩文件的操作命令
- Linux的权限命令
- Linux 用户管理
- Linux系统用户组的管理
- 其他常用命令
数据结构与算法
(一). 数据结构(布隆过滤器)
- 什么是布隆过滤器?
- 布隆过滤器的原理介绍
- 布隆过滤器使用场景
- 通过 Java 编程手动实现布隆过滤器
- 利用Google开源的 Guava中自带的布隆过滤器
- Redis 中的布隆过滤器
- 介绍
- 使用Docker安装
- 常用命令一览
- 实际使用
(二). 算法
数据库
(一). MySQL
- 基本操作
- 数据库操作
- 表的操作
- 数据操作
- 字符集编码
- 数据类型(列类型)
- 列属性(列约束)
- 建表规范
- SELECT
- UNION
- 子查询
- 连接查询(join)
- TRUNCATE
- 备份与还原
- 视图
- 事务(transaction)
- 锁表
- 触发器
- SQL编程
- 存储过程
- 用户和权限管理
- 表维护
- 杂项
(二). Redis
- 5种基本数据结构
- Redis 简介
- Redis 的优点
- Redis 简介
-
-
- Redis 的安装
- 测试本地 Redis 性能
- Redis 五种基本数据结构
- 字符串 string
- 列表 list
- 字典 hash
- 集合 set
- 有序列表 zset
-
- 跳跃表
- 跳跃表简介
- 为什么使用跳跃表
- 本质是解决查找问题
- 更进一步的跳跃表
- 跳跃表的实现
- 随机层数
- 创建跳跃表
- 插入节点实现
- 节点删除实现
- 节点更新实现
- 元素排名的实现
- 跳跃表简介
- 分布式锁深入探究
- 分布式锁简介
- 为何需要分布式锁
- Java 中实现的常见方式
- Redis 分布式锁的问题
- Redis 分布式锁的实现
- 代码实现
- 分布式锁简介
- Redlock分布式锁
- 什么是 RedLock
- 怎么在单节点上实现分布式锁
- Redlock 算法
- 失败重试
- 放锁
- 性能、崩溃恢复和 fsync
- 如何做可靠的分布式锁,Redlock真的可行么
- 用锁保护资源
- 使用 Fencing (栅栏)使得锁变安全
- 使用时间来解决一致性
- 用不可靠的时间打破 Redlock
- Redlock 的同步性假设
- 结论
- 神奇的HyperLoglog解决统计问题
- HyperLogLog 简介
- 关于基数统计
- 基数统计的常用方法
- 概率算法
- HyperLogLog 原理
- 代码实验
- 更近一步:分桶平均
- 真实的 HyperLogLog
- Redis 中的 HyperLogLog 实现
- 密集型存储结构
- 稀疏存储结构
- 对象头
- HyperLogLog 的使用
- HyperLogLog 简介
- 亿级数据过滤和布隆过滤器
- 布隆过滤器简介
- 布隆过滤器简介