Loading

摘要: 整数集合是 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素,并且元素数量不时,就会使用整数集这个数据结构作为底层实现。 整数集合结构设计 可以看到,保存元素的容器是一个 contents 数组,虽然 contents 被声明为 int8_t 类型的数组,但是实际上 contents 阅读全文
posted @ 2022-04-27 15:34 Xianhao 阅读(67) 评论(0) 推荐(0)
摘要: 哈希表是一种保存键值对(key-value)的数据结构。 哈希表中的每一个 key 都是独一无二的,程序可以根据 key 查找到与之关联的 value,或者通过 key 来更新 value,又或者根据 key 来删除整个 key-value等等。 在讲压缩列表的时候,提到过 Redis 的 Hash 阅读全文
posted @ 2022-04-27 15:30 Xianhao 阅读(188) 评论(0) 推荐(0)
摘要: Redis 3.0 的 List 对象在数据量比较少的情况下,会采用「压缩列表」作为底层数据结构的实现,它的优势是节省内存空间,并且是内存紧凑型的数据结构。 压缩列表的最大特点,就是它被设计成一种内存紧凑型的数据结构,占用一块连续的内存空间,不仅可以利用 CPU 缓存,而且会针对不同长度的数据,进行 阅读全文
posted @ 2022-03-11 15:29 Xianhao 阅读(650) 评论(0) 推荐(1)
摘要: Redis 的 List 对象的底层实现之一就是链表。C 语言本身没有链表这个数据结构的,所以 Redis 自己设计了一个链表数据结构。 链表节点结构设计 有前置节点和后置节点,可以看的出,这个是一个双向链表。 链表结构设计 不过,Redis 在 listNode 结构体基础上又封装了 list 这 阅读全文
posted @ 2022-03-10 20:32 Xianhao 阅读(125) 评论(0) 推荐(0)
摘要: ![image](https://img2020.cnblogs.com/blog/2355823/202201/2355823-20220105153401354-993265341.png) ![image](https://img2020.cnblogs.com/blog/2355823/202201/2355823-20220105153408228-1892188978.png) 阅读全文
posted @ 2022-01-05 15:34 Xianhao 阅读(37) 评论(0) 推荐(0)
摘要: 字符串在 Redis 中是很常用的,键值对中的键是字符串类型,值有时也是字符串类型。 Redis 是用 C 语言实现的,但是它没有直接使用 C 语言的 char* 字符数组来实现字符串,而是自己封装了一个名为简单动态字符串(simple dynamic string,SDS) 的数据结构来表示字符串 阅读全文
posted @ 2021-12-28 16:41 Xianhao 阅读(80) 评论(0) 推荐(0)
摘要: Redis 为什么那么快? 除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理! 键值对数据库是怎么实现的? Redis 是使用了一个「哈希表」保存所有键值对,哈希表的最大好处就是让我们可以用 O(1) 阅读全文
posted @ 2021-12-28 16:21 Xianhao 阅读(70) 评论(0) 推荐(0)
摘要: 这几天突然无法使用Maven下载依赖了,都是报的这个错 Could not transfer artifact org.springframework.boot:spring-boot-starter-data-mongodb:pom:2.6.1 from/to aliyunmaven (https 阅读全文
posted @ 2021-12-10 10:35 Xianhao 阅读(2319) 评论(0) 推荐(0)
摘要: 消息生产过程 Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求 NameServer返回该Topic的路由表及Broker列表 路由表:实际上是一个Map,Key为Topic名称,value是一个QueueData实例列表。QueueData并不是一个Q 阅读全文
posted @ 2021-12-07 16:19 Xianhao 阅读(262) 评论(0) 推荐(0)
摘要: 数据复制与刷盘策略 复制策略 复制策略是 Broker的 Master与Slave间的数据同步方式。分为同步复制与异步复制: 同步复制:消息写入Master后, Master会等待Slave同步数据成功后才向 Producer回成内ACK 异步复制:消息写入 Master后, Master立即向Pr 阅读全文
posted @ 2021-12-07 16:06 Xianhao 阅读(142) 评论(0) 推荐(0)