概述 1.链表介绍 2.链表API 链表介绍 链表在Redis中的应用非常广泛,比如列表键list的底层实现就是使用的链表。除了列表键外,Redis的发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用了链表来保存客户端连接状态,以后使用链表来构建客户端输出缓冲区。 链表在Red ...
分类:
其他好文 时间:
2017-09-26 23:41:58
阅读次数:
179
起因 前段时间,看到redis作者发布的一篇文章《Is Redlock safe?》,Redlock是redis作者基于redis设计的分布式锁的算法。文章起因是有一位分布式的专家写了一篇文章《How to do distributed locking》,质疑Redlock的正确性。redis作者则 ...
分类:
其他好文 时间:
2017-08-13 09:57:25
阅读次数:
235
起因 前段时间,看到redis作者发布的一篇文章《Is Redlock safe?》,Redlock是redis作者基于redis设计的分布式锁的算法。文章起因是有一位分布式的专家写了一篇文章《How to do distributed locking》,质疑Redlock的正确性。redis作者则 ...
分类:
其他好文 时间:
2017-08-12 00:38:16
阅读次数:
217
参考:黄健宏 著. Redis设计与实现 (数据库技术丛书) . 机械工业出版社. Kindle 版本. Redis的发布与订阅功能由 PUBLISH、 SUBSCRIBE、 PSUBSCRIBE 等命令组成。 通过执行 SUBSCRIBE 命令, 客户端可以订阅一个或多个频道, 从而成为这些频道的 ...
分类:
其他好文 时间:
2017-05-15 12:59:42
阅读次数:
231
哈希表 结构定义dict.h/dictht table是一个数组, 每个元素是一个指向dict.h/dictEntry 结构的指针. 哈希表节点 next属性指向下一个节点, 形成链表, 解决哈希冲突. 字典 type 和 privdata属性都是针对不同类型的键值对, 为创建多态字典设置. ht数 ...
分类:
其他好文 时间:
2017-04-15 17:56:45
阅读次数:
222
Redis实现为双链表结构, 列表键的底层实现之一就是链表, 发布与订阅, 慢查询, 监视器等功能都用到了链表. Redis本身也使用链表维持多个客户端. 节点定义, 位于 adlist.h/listNode 链表结构定义, 位于adlist.h/list Redis链表特性总结 : ...
分类:
其他好文 时间:
2017-04-14 23:51:42
阅读次数:
276
1.定义 Redis没有使用C语言的字符串, C语言的字符串只会用在不需要对字符串修改而只使用其值地方. Redis使用SDS表示字符串, 结构定义 : SDS也是以'\0'表示结束, 这一个字节不会计入已使用的长度. 这样做的好处是可以重用C字符串函数库里面的一部分函数. 2.SSD和C字符串的区 ...
分类:
其他好文 时间:
2017-04-10 12:18:20
阅读次数:
140
下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型、数据结构和内存管理、持久化和多机协作四个角度对redis的设计思路进行了分析,若
分类:
其他好文 时间:
2017-03-24 20:04:37
阅读次数:
213
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(fileevent):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。时间事件(timeevent):Redis服务器中的一些操作(比如serverCron函数)需要在给..
分类:
其他好文 时间:
2017-02-22 15:21:49
阅读次数:
172
10.1RDB文件的创建和载入SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,在服务器进程阻塞期间,服务器不能处理任何命令请求。BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程继续处理命令请求。RDB文件的载入工作是在服务器启动时自动执行..
分类:
数据库 时间:
2017-02-17 15:51:34
阅读次数:
270