阿冰

阿冰的小屋

记录生活与学习的点滴...

本博客内容仅供教育和信息分享,不对准确性和完整性做保证,使用需谨慎。未经允许,禁止复制或商业使用。外部链接概不负责。随时可能更新,使用本博客默认遵循免责声明

数据密集型应用系统设计:一、可靠可扩展可维护

数据密集型应用指的是数据是主要挑战,主要涉及数据的规模,复杂度或者数据产生与变化的速率等,例如数据库、搜索引擎等涉及大量数据存取的应用。与之对应,是计算密集型应用,主要指CPU利用频繁的应用,例如加密解密、科学计算等颇为耗费CPU计算资源。

本章主要介绍了数据密集型应用系统的三个基本特性:可靠性、可扩展性和可维护性。

使用go语言实现布隆过滤器

布隆过滤器 (Bloom Filter) 是 1970 年由布隆提出的。Bloom Filter 是由连续二进制位集合set和一些哈希函数组成的。数据加入时,将key映射到set上,设置对应位1;数据查询时,将key也映射到set上,如果所有位都为1则表明存在,否则不存在。这种做法存在一定的误判,但是经过参数调优可以达到最佳性能。

使用go语言泛型实现跳表

跳表以有序的方式在层次化的链表中保存元素, 效率和平衡树媲美 —— 查找、删除、添加等操作都可以在 O(logN) 期望时间下完成, 综合能力相当于平衡二叉树,并且比起平衡树来说, 跳跃表的实现要简单直观得多,核心功能在 200 行以内即可实现,遍历的时间复杂度是 O(N),代码简单,空间上也比较节省,因此在挺多的场景得到应用。比如 Redis 的 ZSETLevelDB

0%