引言
本文分为六个部分,包括 Redis 源码日志,服务框架,基础数据结构,内功心法,应用,其他,从源码层面循序渐进的了解Redis。可以快速、有效地了解Redis 的内部构造以及运作机制,更好、更高效地使用Redis。

本文框架如下
第一部分,主要是在阅读代码过程中的日志和笔记;

第二部分,主要介绍了 Redis 的主要框架,以及 Redis 是如何提供服务的,从一个最简单的命令开始讲起;

第三部分,主要介绍 Redis 底层用作存储的数据结构,这一部分很有趣;

第四部分,主要讲解了 Redis 的核心功能,包括持久化,订阅/发布模式,主从复制,事务机制,集群等等;

第五部分,展示了 Redis 几个简单的应用;

第六部分,介绍了 Redis 和 Memcached 的区别,以及稍稍讲解了 Memcached。

Tips:本文内容已经整理成了pdf版本,内容由真实腾讯专家手写,感兴趣的朋友可以点击文章开头链接获取
Redis服务框架
①初探 Redis
图片说明
Redis 在缓存系统所处的位置
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
②Redis 事件驱动详解

事件驱动数据结构
事件循环中心
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
Redis 事件驱动原理
事件注册详解
准备监听工作
为监听套接字注册事件
事件循环
事件触发
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
③Redis 是如何提供服务的

initServerConfig()
aeMain()
新连接的处理流程
请求的处理流程
执行命令
在哪里回复客户端
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
Redis 基础数据结构
①Redis 数据结构综述

一览 Redis 数据结构:

Redis 命令和相关的数据结构
Redis 数据结构 redisOb
Redis 数据结构 sds
Redis 数据结构 dict
Redis 数据结构 ziplist
Redis 数据结构 skiplist
Redis 数据结构 intset
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
Redis 内功心法
①Redis 数据淘汰机制

概述
LRU 数据淘汰机制
TTL 数据淘汰机制
在哪里开始淘汰数据
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
②RDB 持久化策略

简介 Redis 持久化 RDB、AOF
数据结构 rio
RDB 持久化的运作机制
RDB 数据的组织方式
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
③AOF 持久化策略

简介
AOF 数据组织方式
AOF 持久化运作机制
细说更新缓存
AOF 恢复过程
AOF 的适用场景
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
④订阅发布机制

两种订阅
订阅相关数据结构
订阅过程
消息发布
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑤主从复制

概述
积压空间
主从数据同步机制概述
全同步
部分同步
缓存主机
总结
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑥Redis 事务机制

Redis 事务简述
Redis 命令队列
键值的监视
Redis 事务的执行与取消
Redis 事务番外篇
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑦Redis 与 Lua 脚本

Lua 简介
Redis 为什么添加 Lua 支持
Lua 环境的初始化
Lua 脚本执行 Redis 命令
Redis Lua 脚本的执行过程
脏命令
Lua 脚本的传播
总结
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑧Redis 哨兵机制

Redis 哨兵的服务框架
定时程序
哨兵与 Redis 服务器的互联
HELLO 命令
INFO 命令
心跳
在线状态监测
故障修复
Redis 监视器
Redis 数据迁移
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑨Redis 集群(上)
图片说明
前奏
谈一致性哈希算法(consistent hashing)
怎么实现?
twemproxy - Redis 集群管理方案
Redis 官方版本支持的集群
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑩Redis 集群(下)
图片说明
数据结构
数据访问
新的节点
心跳机制
故障修复
故障修复的协议
数据迁移
总结
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
Redis 应用
Redis 应用
积分排行榜
分布式锁
消息中间件
Web 服务器存储 session
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
其他
①内存数据管理

共享对象
两种内存分配策略
memory aware 支持
zmalloc_get_private_dirty() 函数
总结
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
②Redis 日志和断言

Redis 日志
Redis 断言
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
③Redis 与 Memcache

单进程单线程与单进程多线程
丰富与简单的数据结构
其他
性能测试
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
④小剖Memcache

初始化过程
UNIX 域套接字和 UDP/TCP 工作模式
工作线程管理和线程调配方式
存储容器
连接管理
一个请求的工作流程
Memcached 的分布式
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑤Memcached slab 分配策略

Memcached slab 概述
slab class
内存分配的过程
lru 机制
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
⑥源码阅读工具

sublime text 2/3
Eclipse CDT
Source insight
图片说明
我服了!腾讯专家手敲《Redis源码日志笔记》,字字如金
完结
Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

感兴趣的朋友可以点击文章开头链接获取到腾讯专家手写Redis源码日志笔记pdf版本!