redis
文章平均质量分 92
code&poetry
深至缄默,如云漂泊。
展开
-
Redis底层数据结构之字典
Redis底层数据结构之字典说起字典我们应该都比较熟悉,在C++ STL或者Java集合框架中的HashMap就是一种典型的字典结构,用于保存一个键-值对,将一个键与一个值进行关联起来,其中键是不能重复的,也就是说是唯一的。字典作为一种重要的数据结构在Redis数据库中被广泛应用,底层的很多操作基本都是基于字典的。一、字典的基本数据结构一张图描述map的基本数据结构字典的数据结构定义在dict.h文原创 2017-04-09 20:48:09 · 922 阅读 · 0 评论 -
Redis底层数据结构之简单动态字符串
Redis底层数据结构之简单动态字符串我们知道在C语言中常常使用空字符’\0’作为字符串的结尾标志,也就是使用N+1的字符数组来表示长度为N的字符串,Redis没有直接使用C语言中的字符串表示,而是构建了自己的一套字符串表示抽象,称为简单动态字符串SDS(simple dynamic string),至于为什么Redis不采用C语言中的字符串表示方法,这也是我们接下来要探讨的问题,我们首先给出Red原创 2017-04-01 17:53:34 · 1194 阅读 · 0 评论 -
Redis底层数据结构之链表
Redis底层数据结构之链表一、Redis中链表的实现我们都知道在列表的插入与删除的操作,如果数组的中间插入一个元素,那么这个元素后的所有元素的内存地址都要往后移动。删除的话同理,只有对数据的最后一个元素进行插入删除操作时,才比较快。链表并不需要更改节点的内存地址,链表的优势在于增和删,查找时间复杂度为O(n),链表的扩展性比数组好。链表作为一种重要的数据结构广泛用于实现redis的各种功能,由于在原创 2017-04-01 22:25:57 · 851 阅读 · 0 评论 -
Redis底层数据结构之跳跃表
Redis底层数据结构之跳跃表1.引言跳跃表由 William Pugh 在1990年发明,是一种有序的数据结构,类似于平衡树、红黑树这样的数据结构,能够维护一个有序的列表,方便查找。跳跃表支持平均为O(logN)的时间复杂度查找,这与平衡树大体相当,那么为什么Redis的作者选用跳跃表来实现有序集合呢?我们从以下几点说明插入和删除:平衡树的调整操作都需要从引起不平衡的节点开始,向上调整,通过一系原创 2017-05-12 18:00:58 · 919 阅读 · 0 评论 -
Redis之AOF文件持久化
Redis之AOF文件持久化一、AOF持久化介绍Redis除了使用RDB文件持久化数据库外,还提供了AOF持久化功能,与RDB持久化的区别如下:(1) RDB持久化通过保存数据库中键值对来记录数据库的状态,AOF持久化是通过记录服务器所执行的命令来保存数据库的状态的(2) AOF文件的更新频率要高于RDB文件,所以如果服务器开启了AOF文件持久化功能,那么服务器会优先使用AOF文件进行还原数据库的状原创 2017-06-20 16:17:34 · 1847 阅读 · 0 评论 -
Redis之RDB持久化
Redis引入了RDB持久化功能,Redis中有两个命令可以生成RDB文件,一个是SAVE,另外一个是BGSAVE;SAVE命令:SAVE命令会阻塞Redis服务器进程,指导RDB文件创建完毕,在这个期间服务器进程不能处理任何来自客户端的命令请求。原创 2017-06-13 15:39:40 · 745 阅读 · 0 评论