
元数据
元数据
[!abstract] Redis设计与实现
Redis设计与实现|200 - 书名: Redis设计与实现
- 作者: 黄健宏
- 简介: 《Redis设计与实现》对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,这些知识可以帮助读者更好、更高效地使用Redis。本书主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制(replication)、集群(cluster)三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。
- 出版时间: 2015-01-01 00:00:00
- ISBN: 9787111464747
- 分类: 计算机-编程设计
- 出版社: 机械工业出版社
- PC地址:https://weread.qq.com/web/reader/d35323e0597db0d35bd957b
高亮划线
5.1 跳跃表的实现
📌 ,不过表头节点的这些属性都不会被用到,所以图中省略了这些部分,只显示了表头节点的各个层。
⏱ 2021-07-11 15:40:58 ^622000-31-1729-1773
📌 每次创建一个新跳跃表节点的时候,程序都根据幂次定律(power law,越大的数出现的概率越小)随机生成一个介于1和32之间的值作为level数组的大小,这个大小就是层的“高度”。 ^622000-31-2504-2594
- 💭 创建跳跃表时的层高 - ⏱ 2021-07-11 15:37:09
第8章 对象
📌 引用计数
⏱ 2021-07-17 07:36:34 ^622000-47-880-884
📌 对象共享机制
⏱ 2021-07-17 07:37:09 ^622000-47-889-895
📌 节约内存
⏱ 2021-07-17 07:36:53 ^622000-47-927-931
9.3 数据库键空间
📌 Redis是一个键值对(key-value pair)数据库服务器,服务器中的每个数据库都由一个redis.h/redisDb结构表示,其中,redisDb结构的dict字典保存了数据库中的所有键值对,我们将这个字典称为键空间(key space): ^622000-63-425-550
- 💭 键空间 - ⏱ 2021-07-23 08:20:30
读书笔记
4.7 重点回顾
章节评论 No.1
- 本章总结:
#365天学习打卡 46/365
#悟空日志 47/365
今天早上看了下 redis 字典,对几个概念做个总结:
1.字典 由2个哈希表组成。其中一个不常用的哈希表用作扩容和收缩。
2.哈希表由哈希表数组组成
3.哈希表数组由哈希表节点组成
4.哈希表节点由哈希键、哈希值组、下个哈希表节点的指针。这个指针可以将相同数组索引的节点串起来形成单向链表,用来解决哈希冲突。
5.负载因子:已保存节点数/哈希表大小。
6.扩容:如果 ht[1](字典中第一个哈希表) 的大小为第一个大于等于ht[0].used2 的 2 的 n 次方幂。如 used = 3,那么 32 =6,第一个大于等于 6 的 2 的 n 次方幂是8( 2 的 3 次方幂 )。
7.扩容时机:负载因子大于等于 1 且没有执行 BGSAV 命令或 BGREWRITEAOF 命令或大于等于 5 且正在执行 BGSAV 命令或 BGREWRITEAOF 命令
8.缩容: ht[1] 的大小为第一个大于等于ht[0].used 的 2 的 n 次方幂。
9.负载因子小于 0.1 时,自动收缩。
10.采取渐进式扩容。
11.扩容时如果有查找、更新、删除键,则先到 ht[0] 里面找,没找到再去 ht[1]。添加只会在 ht[1] 里面做。 ^37992928-7rF2ydZ83
- ⏱ 2021-07-09 09:51:21
5.1 跳跃表的实现
划线评论
📌 每次创建一个新跳跃表节点的时候,程序都根据幂次定律(power law,越大的数出现的概率越小)随机生成一个介于1和32之间的值作为level数组的大小,这个大小就是层的“高度”。 ^37992928-7rIrQiM9R
- 💭 创建跳跃表时的层高
- ⏱ 2021-07-11 15:37:32
9.3 数据库键空间
划线评论
📌 Redis是一个键值对(key-value pair)数据库服务器,服务器中的每个数据库都由一个redis.h/redisDb结构表示,其中,redisDb结构的dict字典保存了数据库中的所有键值对,我们将这个字典称为键空间(key space): ^37992928-7s0eVvC1B
- 💭 键空间
- ⏱ 2021-07-23 08:20:23