Redis
wintershii
越努力越幸运
展开
-
Redis数据结构(一) — SDS
Redis—SDS简单动态字符串 Redis没有直接使用C语言传统的字符串表示(空字符结尾的字符数组), 而是自己构建了一种名为简单动态字符串的抽象类型, 并将SDS用作Redis的默认字符串表示 在Redis里面,C字符串只会作为字符串字面量, 用在一些无须对字符串值进行修改的地方,比如打印日志. 但当可能会修改字符串值时,就需要SDS来实现字符串, 比如,包含字符串值的键值对在底层就是由SD...原创 2019-04-21 11:08:57 · 208 阅读 · 0 评论 -
Redis数据结构(二) — 链表
链表 链表提供了高效的节点重排能力, 以及顺序性的节点访问方式, 并且可以通过增删节点来灵活的调整链表的长度 列表键的底层实现之一就是链表. 当一个列表键包含了数量比较多的元素, 又或者列表中包含的元素都是比较长的字符串时, Redis就会使用链表作为列表键的底层实现 除了列表键之外, 发布与订阅, 慢查询, 监视器等功能页用到了链表,Redis服务器本身还使用链表保存多个客户端的状态信息, 以及...原创 2019-04-21 11:10:00 · 142 阅读 · 0 评论 -
Redis数据结构(三) —字典
字典 字典, 又称为符号表(symbol table), 关联数组(associative array)或映射(map), 是一种用于保存键值对的抽象数据结构 字典中, 一个键(key)可以和一个值(value)进行关联, 并且每个键都是独一无二的, 程序可以在字典中根据键查找与之关联的值, 或者通过键来更新值, 或者根据键来删除整个键值对等 字典在Redis中的应用广泛,比如Redis的数据库就...原创 2019-04-23 22:56:35 · 161 阅读 · 0 评论 -
Redis数据结构(四) —跳跃表
跳跃表 跳跃表(skiplist)是一种有序的数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的 跳跃表支持平均O(logN), 最坏O(n) 复杂度的节点查找, 还可以通过顺序性操作来批量处理节点 Redis使用跳跃表作为有序集合键的底层实现之一, 如果一个有序集合包含的元素数量比较多, 又或者有序集合中元素的成员是比较长的字符串时, Redis就会使用跳跃表...原创 2019-05-19 12:29:55 · 193 阅读 · 0 评论 -
Redis数据结构(五) —整数集合
整数集合 整数集合(intset)是集合键的底层实现之一, 当一个集合只包含整数值元素, 并且这个集合元素数量不多时, Redis就会使用整数集合作为集合键的底层实现. 1.整数集合的实现 整数集合(intset)是Redis用于保存整数值的集合抽象数据结构, 它可以保存类型为int16_t, int32_t, int_64_t的整数值, 并且保证集合中不会出现重复元素 inset.h/intse...原创 2019-05-19 12:31:54 · 202 阅读 · 0 评论 -
Redis—五大对象
Redis五大对象 在前面我们学习了Redis中的数据结构, 但是Redis并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统. 这个系统包括了字符串对象, 列表对象, 哈希对象, 集合对象和有序集合对象这五中类型的对象, 每种对象都至少对应了至少一种前面的数据结构 通过这五种不同类型的对象, Redis可以在执行命令前, 根据对象的类型来判断一个对象是否可以...原创 2019-08-02 16:29:47 · 377 阅读 · 0 评论 -
Redis—数据库
Redis数据库 1.服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中, db数组的每个项都是一个redis.h/redisDb结构, 每个redisDb结构代表一个数据库 在初始化服务器时, 程序会根据服务器状态的dbnum属性来决定应该创建多少个数据库 struct redisServer { //... /...原创 2019-08-03 11:54:56 · 110 阅读 · 0 评论 -
Redis—持久化
Redis持久化 Redis是一个键值对数据库服务器, 并且是一个内存数据库, 它将自己的数据库状态储存在内存里面, 如果不想办法将数据库状态保存在磁盘里面, 那么一旦进程退出, 服务器中的数据库状态也会消失不见 1.RDB持久化 RDB持久化功能可以将Redis在内存中的数据库状态保存到磁盘里面, 避免数据意外丢失 RDB持久化功能既可以手动执行, 也可以根据服务器配置选项定期执行, 该功能可以...原创 2019-08-06 16:45:35 · 109 阅读 · 0 评论 -
Redis数据结构(六) —压缩列表
压缩列表 压缩列表是列表键和哈希键的底层实现之一, 当一个列表键只包含少量列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做列表键的底层实现. 另外, 当一个哈希键只包含少量键值对, 并且每个键值对的键和值要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做哈希键的底层实现 1.压缩列表的构成 压缩列表是Re...原创 2019-09-03 19:36:20 · 138 阅读 · 0 评论