共计 3 篇文章

Redis设计与实现

最近为了学习redis,把redis设计与实现这本书看完了。这本书图文并茂,深入浅出,有种作者是把菜饭嚼碎了喂给你吃的感觉。看完后对redis的实现有了比较深的理解,决定把感触比较深的几点记录下来。 数据类型和结构 首先要明白数据类型和数据结构的区别: redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 redis底层的六种数据结构:SDS(简单动态字符串),list( ...

MySQL 技术内幕:InnoDB 存储引擎

首先推荐下Draveness's Blog,他的文章深入浅出,很有学习价值,每篇文章我都会很认真地去学习。前面他写了好几篇关于InnoDB的文章,看完后意犹未尽,不过还是有些地方不是很明白。所以决定自己动手,把MySQL 技术内幕:InnoDB 存储引擎看完,解开了不少疑惑。 首先先提几个小问题: InnoDB的逻辑存储结构和磁盘的物理存储结构的关系? InnoDB存储引擎为什么在绝大多数情况下选择B+树建立索引? 插入根据自增顺序进行,B+树分裂会导致什么问题? 行锁和表锁的区别,有了S,X锁后为什么还需要IS,IX锁,可以解决什么问题? ...

自己动手写Docker

前面把Docker-Practice看完,基本了解了Docker的用法。还写了篇博客Docker的一些小实践,后来想深入了解Docker,买了浙大出的Docker容器与容器云,看起来很吃力,一直没能坚持看完。后来发现了自己动手写Docker这本书,从头开始教你写一个简易的Docker,非常适合进阶。看完后不仅对Docker有了更深的了解,还掌握了更多Linux相关的知识,收益很多。 基础技术 Namespace 命名空间 (namespaces) 是Linux内核的功能,它可以隔离一系列的系统资源。举个例子,我们可以开一个shell,在里面可以访问机器的任意文件,可以ps -ef查看所有的进程列表。而命名空间就相当于在机器里开辟了一台新机器给你用,你看不到宿主机器上别的信息。 ...