tcmalloc原理分析

  1. tcmalloc(即Thread-Cache Malloc)是一个通用的内存分配器,使用tcmalloc只需要在编译的链接阶段加入-ltcmalloc,而不是使用glibcptmalloc2),不需要有任何的代码改动。也就是说用户在使用malloc/freenew/delete时会使用tcmalloc进行内存分配。


2017-11-24 tcmalloc , 源码 , Linux

(六) Redis的事件驱动模型

      Redis支持两种事件,文件事件和时间事件。文件事件用于处理socket请求,时间事件则处理一些定时任务和周期性任务。
      Redis基于Reactor模式设计了自己的事件处理器,可以处理文件事件和时间事件。在ae.h和ae.c中分别定义和实现了外部接口。


2017-10-13 Redis , 源码 , Linux

(五) Redis的数据结构-dict

      dict是一个key-value存储的hash map,实际上redis对外提供的key-value服务的底层数据结构就是dicthash map由一个hash算法来确定数据的在数组中的放置位置,dict使用开链法解决冲突。


2017-10-12 Redis , 源码 , Linux

(四) Redis的数据结构-整数集合

intset是一个整数集合,集合中没有重复的元素,且元素从小到大排列,因为内容有序,所以在查找时可以使用二分法。

2017-10-11 Redis , 源码 , Linux

(三) Redis的数据结构-链表

Redis中定义三种链表:list、ziplist和quicklist以满足不同使用场景


2017-09-28 Redis , 源码 , Linux

(二) Redis的数据结构-string

        C语言没有提供像mapsetlist等复杂的数据结构,虽然提供了string类型char* 但是但是效率比较差(主要表现在申请和释放空间上)。因此Redis封装了这些数据结构,当然在封装的时候使用了很巧妙的设计,能够最大化的优化时间和空间复杂度。Redis的性能能够如此优秀,可以说这些数据结构是基石。


2017-09-21 Redis , 源码 , Linux

(一) Redis简介和源码结构

RedisRemote Dictionary Server)是一种开源的高效key-value存储系统,作者是Salvatore Sanfilippo


2017-09-17 Redis , 源码 , Linux