4.1 页大小为16k,且二叉树的有序性尽可能的保证顺序写,特殊情况也会存在页合并和页分裂的情况;使用 buffer pool 缓存减少io读取;缓存刷盘会先进入 page cache; 4.2 没看懂 4.3 B+树,id递增比较好,容易命中顺序写(具体看4.1) 4.4 缓存 + 布隆过滤器; 5. 结构化如c、面向对象如java、c++,函数式如scala 6. 乐观锁、悲观锁、共享锁、独占锁、自旋锁、轻量级锁、偏向锁、重量级锁、synchronized、reetrantlock、AQS等。 7. 没了解过,只知道redis、memorycached,或者自己实现 LRU。 8. string、list、hash、set、zset、bitmap、hyperloglog、geo、stream;zset 由quick list + 跳表实现。 9. 从定义、资源利用、开销展开说。 10. 看情况,如 jvm 会限制最大使用内存。 11. 重试 + 滑动窗口 + 流量控制 + 用塞控制;大多数情况下使用tcp,不可靠的场景可以使用udp。 12. 如何应对连接超过1w的场景。考察的是IO多路复用;
12 2

相关推荐

牛客网
牛客企业服务