博客专栏  >  数据库   >  Redis源码剖析

Redis源码剖析

Redis是支持网络,基于内存并且可持久化的kv型数据库,源码中的数据结构,k-v数据的存储,发布订阅等功能都十分值得学习

关注
1 已关注
13篇博文
  • Redis源码剖析(十三)整数集合

    Redis提供一种叫整数集合的数据结构,当数据中只包含整数,并且数据数量不多时,Redis便会采用整数集合存储Redis保证整数集合有以下几个特性 所含元素全是整数,且不重复 内部元素有序,通常是会从...

    2018-01-20 14:18
    26
  • Redis源码剖析(十二)有序集合跳表实现

    有序集合是Redis对象系统中的一部分,其底层采用跳表和压缩列表两种形式存储,在上一篇介绍了跳表实现,就趁热打铁看一下有序集合的跳表实现本篇主要涉及的是有序集合添加数据的命令,后面会看到,在命令的底层...

    2018-01-20 11:17
    42
  • Redis源码剖析(十一)跳表

    在树形结构中,常见的平衡树有AVL树和红黑树,但是由于AVL树过于平衡,导致维护平衡所需的代价过大,使用的不多,不过其中几种旋转算法还是值得学习的。取而代之的是较为平衡的红黑树,STL中的map和se...

    2018-01-10 22:21
    49
  • Redis源码剖析(十)简单动态字符串sds

    在对象系统概述中发现,好像所有和字符串有关的内容都有sds的存在,实际上,它是Redis内部对于c字符串的封装,所谓c字符串,其实就是char *,在sds.h头文件中可以清楚的看到它的定义 /...

    2018-01-10 17:16
    39
  • Redis源码剖析(九)对象系统概述

    在Redis的源码中,到处可见robj类型的变量,在介绍其他模块时,只是将它看成Redis的数据类型,并没有深入探究。而事实上,它是对象系统,提供了对多种类型的封装,Redis可以根据数据的具体形式,...

    2018-01-09 20:45
    38
  • Redis源码剖析(八)链表

    在之前对Redis的介绍中,可以看到链表的使用频率非常高。链表可以作为单独的存储结构,比如客户端的监视链表记录该客户端监视的所有键,服务器的模式订阅链表记录所有客户端和它的模式订阅。链表也可以内嵌到字...

    2018-01-09 18:21
    34
  • Redis源码剖析(七)监视功能

    Redis提供这样一个功能,客户端在开启事务之前,可以设置对一个或多个键的监视,在执行EXEC命令之前的这段时间,如果其他客户端对该客户端监视的键做了修改,那么Redis会取消该客户端事务的运行,也就...

    2018-01-09 15:40
    32
  • Redis源码剖析(六)事务模块

    Redis允许客户端开启事务模式,在事务模式中,客户端输入的命令不会立即执行而是被保存在事务队列中,只有当客户端输入事务运行命令时,Redis才会将事务队列中的所有命令按照FIFO的顺序一个个执行 ...

    2018-01-06 22:51
    20
  • Redis源码剖析(五)订阅与发布

    Redis提供了订阅和发布的功能,允许客户端订阅一个或多个频道,当其他客户端向某个频道发送消息时,服务器会将消息转发给所有订阅该频道的客户端 这一点有点像群聊的功能,一个客户端将消息发往群中(向某个...

    2018-01-05 21:21
    100
  • Redis源码剖析(四)过期键的删除策略

    Redis是支持时间事件的,所谓时间事件,是为某个键值对设置过期时间,时间一到,Redis会自动删除该键值对。例如使用SET命令添加字符串类型的键值对 127.0.0.1:6379> SET b...

    2018-01-04 22:37
    77
  • Redis源码剖析(三)字典结构的设计与实现

    Redis是K-V类型的数据库,所谓K-V类型,就是底层存储的数据结构是key-value,即键key,值value。键key在Redis中以字符串的形式存在,而值value可以是多种类型 Redi...

    2018-01-04 19:21
    59
  • Redis源码剖析(二)io多路复用函数及事件驱动流程

    作为服务器监听客户端请求的方法,io多路复用起到了不可忽略的作用,利用io复用监听的方法叫Reactor模式,在前一篇也提到过,使用io复用是现在常用的提高并发性的方法,而且效果显著。 通常io多路...

    2018-01-04 13:36
    141
  • Redis源码剖析(一)服务器与客户端交互流程

    Redis中的C/S模型Redis底层还是基于网络请求的,对于单机数据库而言,网络请求仅仅是在一台机器上交互,即服务器客户端都在一台计算机上当在终端输入redis-serve时,便启动了一个Redis...

    2018-01-04 00:50
    122

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部