Redis源码解析2 - 内存管理

Redis提供了多种内置数据结构,在运行过程中的大部分内存都是动态分配的,所以在介绍数据结构的实现之前我们先来看一下Redis是如何进行内存管理的,相关的代码在zmalloc.h和zmalloc.c文件中。
阅读全文 →

Redis源码解析3 - 事件循环

Redis实现了异步事件循环,主要代码在ae.h,ae.c,ae_*.c几个文件中,支持epoll,evport,kqueue,select四种异步模型。
阅读全文 →

Redis源码详解4:动态字符串

C语言并没有在语言层面上支持字符串,Redis对C语言原生的char*类型做了封装,实现了简单的动态字符串,可以动态扩展,实现代码基本在sds.hsds.csdsalloc.c三个文件中。
阅读全文 →

Redis源码详解1:概述

REmote DIctionary Server(Redis)是当前使用最广泛的高性能内存数据库,使用C语言开发,常常被用来实现缓存、分布式锁等功能。

本系列分析Redis 5.0版本,源代码可以从GitHub下载,付上下载地址

阅读全文 →

Redis源码详解 - 后台线程

看到许多网站上说Redis是单线程的,其实这样的说法并不严谨,研究了源代码后可以知道,Redis的主要逻辑是单线程的,但同时还有其他多个后台辅助线程。
阅读全文 →

Redis源码详解5:列表

Redis支持5种基本数据结构

  • string
  • list
  • hash
  • set
  • zset
阅读全文 →