摘要: 跳表与二叉搜索树 跳表与二叉搜索树 本文探索跳表与二叉搜索树的一些相似之处, 以此来加深对跳表结构的深入理解 适用场景 跳表在Redis中有比较广泛的使用Redis 技术要点 我们可以认定跳表本质上就是一个平衡二叉搜索树, 跳表的目标是为了能够快速的定位key所在的index 所以可以认定的是跳表的 阅读全文
posted @ 2024-03-24 15:40 pDJJq 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 指数退避算法用于自旋锁,尝试CAS获取锁失败后会等待递增的时间片再次尝试,以减少竞争。backoff值指数递增,等待时间随之增加,提高尝试成功率。 阅读全文
posted @ 2024-03-24 15:38 pDJJq 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 该文章介绍了如何实现无锁队列,通过使用CAS操作和指针相等判断来确保并发安全。无锁队列适用于需要高效处理并发情况下的队列操作,具有较高的性能和并发性。 阅读全文
posted @ 2024-03-24 15:36 pDJJq 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 本文探讨了PR(Pull Request)和MR(Merge Request)的区别,PR源自GitHub,适用于向自己没有权限的项目提交合并请求;MR源自GitLab,可以指定源仓库、源分支、目标仓库和目标分支,更具体直观。建议在开源项目中使用PR,在公司内部使用GitLab时可以使用MR。 阅读全文
posted @ 2024-03-24 15:35 pDJJq 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了在 Go 语言中使用反射时需要注意的一些问题,包括针对结构体和指针调用方法的差异、通过反射调用方法时的规则、指针与实例的区别以及为什么应该使用指针而不是实例等关键内容。另外,还提到了在反射中使用指针无法修改值的情况。 阅读全文
posted @ 2024-03-24 15:32 pDJJq 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Go数组的扩容规则是先双倍扩容,然后根据一定比例逐渐向1.25靠近。在小于256时会进行双倍扩容,在大于256时根据生长因子扩容,最终趋近于1.25。扩容过程中需注意内存溢出情况。 阅读全文
posted @ 2024-03-24 15:31 pDJJq 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 通过chan来实现并发访问控制,演示了如何使用channel来实现实例的并发访问,当chan为空时,尝试读可以成功,获得的结果为空。 阅读全文
posted @ 2024-03-24 15:28 pDJJq 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了使用Go语言操作etcd的基本功能,包括建立连接、Get/Set操作、Lease租约管理和Watch监控功能。通过示例代码演示了如何进行基本的键值存储、租约控制和实时监控等操作。 阅读全文
posted @ 2024-03-24 15:25 pDJJq 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了使用etcd实现简单分布式锁的设计方案,通过键值对的revision来判断锁的创建和释放状态。实现了Lock上锁、Unlock解锁功能,并提供Watch-Dog模式。 阅读全文
posted @ 2024-03-24 15:24 pDJJq 阅读(6) 评论(0) 推荐(0) 编辑
摘要: etcd 以及 redis分布式锁的实现优劣比较 背景介绍 在学习etcd时, 对于使用etcd实现分布式锁(使用etcd来实现一个简单的分布式锁)做了一个简单的示例, 同时也能想到和Redis实现的分布式锁相比, 基于etcd来做有什么好处呢? 技术要点 底层技术比较 我们必须要明白一件事情, 两 阅读全文
posted @ 2024-03-24 15:23 pDJJq 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本文简要介绍了思源基本配置中的背景颜色、横向菜单样式、选中页签样式和引用样式 阅读全文
posted @ 2024-03-24 15:10 pDJJq 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了如何使用Scoop来管理个人配置,包括安装和配置aria2、git,导出和导入软件列表等操作。同时提供了参考的scoop.json文件和scoop list列表,以及安装所有软件的命令示例。 阅读全文
posted @ 2024-03-24 02:50 pDJJq 阅读(51) 评论(0) 推荐(0) 编辑