缓存(cache)利用是空间局部性(Locality of reference):最近被访问的元素很有可能在将来也被访问,从而将结果缓存起来,避免更加耗时的查询(例如,数据库的查询操作,网页图片,网页格式的加载等)。
本文主要讲对数据库查询的缓存。
Golang的逃逸分析
发表于
更新于
Golang的修饰器模式
发表于
更新于
Golang channel 源码分析
Golang的GC性能优化技巧
分布式环境的数据复制(Replication)
发表于
更新于
HyperLogLog原理以及Golang实现
本文代码在我的Github仓库,欢迎给star。
代码实现参考了hyperloglog的维基百科
去重计数(Count distinct)
日常开发中,有时候需要对大量的数据集进行去重计数的工作,这是非常耗费计算资源的。比如说,需要计算某个视频/文章的观看用户数,由于同个用户可能在一天之内多次观看,使用要进行去重操作。如果使用一个hash集合保存用户的id,不仅耗费大量存储空间,也耗费计算的时间。
HyperLogLog
适用于数量很大,能容忍少量错误率的去重计数操作,它使用的存储空间非常小,几十字节就能对百万以上的数据进行去重计数。
布隆过滤器(Bloom Filter)原理及Golang实现
发表于
更新于