07 2021 档案

摘要:逃逸分析是 Go 编译器的一部分。它分析源代码并确定哪些变量应该分配到栈上、哪些逃逸到堆上。 阅读全文
posted @ 2021-07-20 16:56 邱佳飞 阅读(120) 评论(0) 推荐(0)
摘要:平常开发调试接口请求遇到 https 流量或者 gprc 无法查看网络层, 记录一下防止遗忘 阅读全文
posted @ 2021-07-14 22:48 邱佳飞 阅读(774) 评论(0) 推荐(0)
摘要:哈希表的意义不言而喻,它能提供 O(1) 复杂度的读写性能,所以主流编程语言中都内置有哈希表。 哈希表的关键在于哈希函数, 好的哈希函数能减少哈希碰撞,提供最优秀的读写性能。 阅读全文
posted @ 2021-07-12 10:55 邱佳飞 阅读(644) 评论(2) 推荐(0)
摘要: 阅读全文
posted @ 2021-07-09 11:11 邱佳飞 阅读(448) 评论(0) 推荐(0)
摘要:整数集合时集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合数量不多时,就会使用整数集合 阅读全文
posted @ 2021-07-08 13:57 邱佳飞 阅读(60) 评论(0) 推荐(0)
摘要:压缩列表 ziplist 是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串, 那么Redis 就会使用压缩列表当列表键的底层实现。 阅读全文
posted @ 2021-07-07 10:42 邱佳飞 阅读(118) 评论(0) 推荐(0)
摘要:跳跃表 skiplist 是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的,平均复杂度 O(logN)、最坏 O(N) Redis 使用跳表作为有序集合集合键的底层实现之一,如果一个有序集合包含的元素数量比较多, 或者有序集合中成员是比较长的字符串时,Redis 就会使用跳表来作为有序集合键的底层实现 阅读全文
posted @ 2021-07-06 10:04 邱佳飞 阅读(272) 评论(0) 推荐(0)
摘要:在字典中,每个键都是独一无二的,程序可以在字典中根据键查找与之相关联的值,或者通过键来更新和删除值。 字典在 Redis 中的应用相当广泛,比如 Redis 的数据库就是使用字典来作为底层实现的,例如: 阅读全文
posted @ 2021-07-05 16:10 邱佳飞 阅读(75) 评论(0) 推荐(0)
摘要:链表提供了高效的节点重排能力,以及可以顺序访问,也可以通过增删节点灵活调整链表长度,Redis中的列表、发布订阅、慢查询、监视器等功能均用到了链表。 阅读全文
posted @ 2021-07-04 23:00 邱佳飞 阅读(63) 评论(0) 推荐(0)
摘要:Redis 的 string 类型底层使用的是 SDS(动态字符串) 实现的, 具体数据结构如下: 阅读全文
posted @ 2021-07-03 23:42 邱佳飞 阅读(373) 评论(0) 推荐(0)
摘要:如果你的发流程是下面👇这个样子的, 那么你一定很好奇, 为什么我提交到仓库的代码可以自动部署并访问到最新的提交内容 阅读全文
posted @ 2021-07-03 22:27 邱佳飞 阅读(379) 评论(0) 推荐(0)
摘要:当程序不能正确处理错误时, 会触发 Go 的 panic,比如无效的内存访问。如果错误时意外发生的,并且没有别的方法来处理它,开发人员也可以触发 panic。理解恢复或终止的流程有助于理解程序 panic 的后果。 阅读全文
posted @ 2021-07-02 23:56 邱佳飞 阅读(139) 评论(0) 推荐(0)
摘要:关于开发者使用Go遇到的最大挑战的年度调查报告中,错误管理是经常被争论和反复提起的话题。然而,当涉及到在并发环境中处理错误或为相同的 goroutine 组合多个错误时,Go 提供了很好的包,使多个错误的管理变得很容易 阅读全文
posted @ 2021-07-01 20:13 邱佳飞 阅读(979) 评论(0) 推荐(0)