深入理解go map

哈希函数

哈希查找表一般会存在“碰撞”的问题,就是说不同的 key 被哈希到了同一个 bucket。一般有两种应对方法:链表法开放地址法链表法将一个 bucket 实现成一个链表,落在同一个 bucket 中的 key 都会插入这个链表。开放地址法则是碰撞发生后,通过一定的规律,在数组的后面挑选“空位”,用来放置新的 key。

查看更多

分享到 评论

kafka 基本术语

Apache Kafka 是一款开源的消息引擎系统,也是分布式流处理平台,使用的是纯二进制的字节序列。

kafka术语


Topic: 发布订阅的对象是主题(Topic) 生产者程序通常持续不断地向一个或多个主题发送消息

Producer: 向主题发布消息的客户端应用程序称为生产者(Producer)

Consumer: 订阅这些主题消息的客户端应用程序就被称为消费者(Consumer)

查看更多

分享到 评论

给字符串加索引

MySQL是支持前缀索引的,前缀索引的优势就是占用的空间小,这同时带来的损失是,可能会增加额外的记录扫描次数。

查看更多

分享到 评论

2019年总结

今年的最后一段时间是在罗振宇的跨年演讲中度过的,当然不是在现场。

2019是一个有意思的一年,如在北京待的越久,似乎就越不愿意离开了。在这里认识了更多厉害的人,就会看到自己的渺小。

查看更多

分享到 评论

数据删掉一半,表的大小不变

数据库占用空间太大,把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?

查看更多

分享到 评论

分析MySQL中隐式转换导致查询结果错误及索引不可用

以下是例子

1
SELECT * FROM TABLE WHERE xxx = 11 

如果列xxx确实只有11的,你是否就认为筛选出来的就一定只有xxx=11的呢?

在过滤字段为数值类型的时候,数值类型有一种隐式转换,如果是以数字开头的,包含有字符,后面的字符会被截断,只取前面的数字值。

查看更多

分享到 评论

记一次MySQL死锁排查过程

背景

大概说一下业务场景,需要定时计算一些数据,从其他系统、接口拉取达到的数据比较多,然后经计算后的值存储在本系统中。拉取的数据量可能有万左右,然后以主键存在的数据是需要更新的。不存在则插入。每次做全量更新/插入。

查看更多

分享到 评论

python钉钉机器人自定义回复

大概有这样的需求

  1. 达到xxx条件。比如是到了某个时刻。机器人自动在群里通知,并@相关的人
  2. 比如在群里回复一个关键词、然后期望得到想要的信息,以达到解放双手的目的。这一块儿就需要自己对接钉钉API来实现了。比如这种问答式的

    查看更多

分享到 评论

合适以及为何使用最少使用(LFU)缓存与Golang中的实现

[译]合适以及为何使用最少使用(LFU)缓存与Golang中的实现

在过去的这些年,参与计算机科学和工程师的人们一直在努力优化各种性质。我们生活在一个资源有限的世界里,人们一直致力于优化成本和速度的方法。

在软件工程方面而言,我认为,最流行的改善性能的就是缓存了。在许多app都有缓存,依赖于软件方面的存储,缓存背后的想法非常简单。为了加载较快,存储数据经常被用到。

查看更多

分享到 评论

vim技巧

目录

简介
小技巧
启动及关闭
教程篇
文本编辑
文本编辑的高效命令
other

简介

得益于 vim 的指法,敲起代码来如行云流水。不管是不是写代码,学好vim 指法相当重要,当然最重要的还是为了效率,节省时间做更多其他的事。

查看更多

分享到 评论