字节剪映二面
1. 你两个练手项目中遇到过什么难点?或者有思考过参考资料范围外的问题吗?
2. 缓存不一致出现的场景、原因及具体解法是什么?
3. 先更新数据库再删除缓存的策略,存在哪些边界 case?会怎么发生?
4. 延迟双删的第二次删除是在什么时候?该怎么设计逻辑?
5. 删掉缓存后,只允许第一个请求读数据库并更新缓存,其他请求被锁住,这个设计是为了实现什么?
6. 构建缓存的请求失败了怎么办?
7. 为什么选择让未拿到锁的请求直接返回旧数据,而不是让它们等待锁或重试?这种方案的好处和坏处分别是什么?
8. 构建缓存请求失败时,继续等锁和直接返回旧数据哪种方案更占优?
9. 你实现缓存相关的锁时,用的是什么方式?
10. Java 中 HashMap 的底层数据结构是什么?
11. 直接用红黑树实现 Map 功能是否可行?HashMap(哈希表+开链/红黑树)与全红黑树实现的 Map 各有什么优劣?
12. HashMap 如何解决容量不够的问题?Java 中的扩容是怎么做的?
13. 如何避免触发扩容阈值的那次写操作承担所有数据搬迁开销?
14. 有办法将扩容的开销均摊出去吗?具体怎么操作?
1. 你两个练手项目中遇到过什么难点?或者有思考过参考资料范围外的问题吗?
2. 缓存不一致出现的场景、原因及具体解法是什么?
3. 先更新数据库再删除缓存的策略,存在哪些边界 case?会怎么发生?
4. 延迟双删的第二次删除是在什么时候?该怎么设计逻辑?
5. 删掉缓存后,只允许第一个请求读数据库并更新缓存,其他请求被锁住,这个设计是为了实现什么?
6. 构建缓存的请求失败了怎么办?
7. 为什么选择让未拿到锁的请求直接返回旧数据,而不是让它们等待锁或重试?这种方案的好处和坏处分别是什么?
8. 构建缓存请求失败时,继续等锁和直接返回旧数据哪种方案更占优?
9. 你实现缓存相关的锁时,用的是什么方式?
10. Java 中 HashMap 的底层数据结构是什么?
11. 直接用红黑树实现 Map 功能是否可行?HashMap(哈希表+开链/红黑树)与全红黑树实现的 Map 各有什么优劣?
12. HashMap 如何解决容量不够的问题?Java 中的扩容是怎么做的?
13. 如何避免触发扩容阈值的那次写操作承担所有数据搬迁开销?
14. 有办法将扩容的开销均摊出去吗?具体怎么操作?
全部评论
相关推荐
昨天 12:47
湘潭大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-24 23:12
四川大学 算法工程师 点赞 评论 收藏
分享