9.1服务器中得数据库Redis服务器默认会创建16个数据库。9.2切换数据库默认情况下,Redis客户端得目标数据库为0号数据库,但客户端可以通过执行SELECT命令来切换目标数据库。9.3数据库键空间键空间和用户所见得数据库是直接对应得:键空间得键就是数据库得键,每个键都是一个字..
分类:
数据库 时间:
2017-02-17 00:55:39
阅读次数:
242
8.1对象的类型与编码8.1.1类型8.1.2编码和底层实现8.2字符串对象字符串对象的编码可以是int、raw或者embstr。如果字符串对象保存的是一个字符串值,并且这个字符串值的长度大于32字节(存疑,我电脑上是39字节),那么字符串对象将使用一个简单动态字符串(SDS)来保存这个字符..
分类:
其他好文 时间:
2017-02-15 11:04:54
阅读次数:
270
压缩列表(ziplist)是列表键和哈希键的底层实现之一。7.1压缩列表的构成压缩列表是Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构。一个压缩列表可以包含任意多个节点(entry),每个节点可以保存数组或者一个整数值。7.2压缩..
分类:
其他好文 时间:
2017-02-14 14:12:22
阅读次数:
162
整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素不多时,Redis就会使用整数集合作为集合键的底层实现。6.1整数集合的实现contents数组时整数集合的底层实现:整数集合的每个元素都是contents数组的一个数组项(item),各个项在数组..
分类:
其他好文 时间:
2017-02-13 22:23:41
阅读次数:
178
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。Redis使用跳跃表作为有序结合键的底层实现之一,如果一个有序集合..
分类:
其他好文 时间:
2017-02-10 18:49:36
阅读次数:
259
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过删除节点来灵活地调整链表地长度。当一个列表键包含了数量比较多地元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。出了链表键之外,发布与订阅、慢查询、监..
分类:
其他好文 时间:
2017-02-08 15:13:06
阅读次数:
202
版权声明:本文由宋增宽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/222 来源:腾云阁 https://www.qcloud.com/community 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发 ...
分类:
其他好文 时间:
2016-12-11 22:55:20
阅读次数:
243
redis数据库 默认16个数据库,每个数据库由一个redis.h/redisDb结构表示,此结构里的dict字典与expires字典,其中dict保存了该库所有键值对,此字典即为键空间;expires字典保存了数据库中所有键的过期时间,该字典的键为指向键空间中的某键对象,值为long long 类 ...
分类:
其他好文 时间:
2016-12-07 20:47:05
阅读次数:
154
事件 redis服务器是事件驱动的,事件分为文件事件与时间事件 文件事件是服务器通过套接字与客户端连接,两者之间的通信会产生相应的文件事件,服务器监听并处理这些事件完成网络操作; 时间事件是指redis服务器的定时操作 redis基于reactor模式的文件事件处理器以单线程方式运行,并使用I/O多 ...
分类:
其他好文 时间:
2016-12-07 20:03:25
阅读次数:
145
作为redis最基础的底层数据结构之一,SDS提供了许多C风格字符串所不具备的功能,为之后redis内存管理提供了许多方便。它们分别是: 二进制安全 减少字符串长度获取时间复杂度 杜绝字符串溢出 减少内存分配次数 兼容部分C语言函数 下面将简要阐述SDS基础结构,并介绍这些功能相应的实现细节。 SD ...
分类:
其他好文 时间:
2016-10-10 20:12:05
阅读次数:
188