Redis学习笔记 -- 简介

65 阅读1分钟
  1. Redis高性能主要原因:

    • Redis是基于内存的存储数据库;
    • Redis是单进程线程的服务(实际上一个正在运行的Redis Server肯定不止一个线程,但只有一个线程来处理网络请求),避免了不必要的上下文切换,同时不存在加锁/释放锁等同步操作;
    • Redis使用多路I/O复用模型(select、poll、epoll),可以高效处理大量并发连接;
    • Redis的数据结构是专门设计的,增、删、改、查等操作相对简单。
  2. Redis源码描述

    Redis源码主要放在src文件夹中,5.0源码文件如下。其中server.c为服务端程序,redis-cli.c为客户端程序。

    Redis5.0源码目录.png

    • 基本的数据结构
      • 动态字符串:sdc.c
      • 整数集合:intset.c
      • 压缩列表:ziplist.c
      • 快速链表:quicklist.c
      • 字典:dict.c
      • Streams的底层实现结构:listpack.c 和 rax.c
    • Redis数据类型的底层实现
      • Redis对象object.c
      • 字符串:t_string.c
      • 列表:t_list.c
      • 字典:t_hash.c
      • 集合及有序集合:t_set.c 和 t_zset.c
      • 数据流:t_stream.c
    • Redis数据库的实现
      • 数据库的底层实现:db.c
      • 持久化:rdb.c 和 aof.c
    • Redis服务端和客户端的实现
      • 事件驱动:ae.c 和 ae_epoll.c
      • 网络连接:anet.c 和 networking.c
      • 服务端程序:server.c
      • 客户端程序:redis-cli.c
    • 其他
      • 主从复制:replication.c
      • 哨兵:sentinel.c
      • 集群:cluster.c
      • 其他数据结构:hyperloglog.c、geo.c等
      • 其他功能:pub/sub、Lua脚本等

参考内容

  • 《Redis5设计与源码分析》机械工业出版社 陈雷等编著