饿了么暑期后端一面(约2面)

#暑期实习# #日常实习#
1. 项目中的难点是什么?
2. 高精度视频为什么要把播放记录存在缓存里?频繁访问redis性能会不会也有问题?是读操作多还是写操作多
3. 数据库与缓存的一致性问题,如果删除缓存时发生了异常,怎么办?
4. 用消息队列解决,根据什么从消息队列里把它去掉?
5. redis用的比较多,聊聊 (作用,数据结构,持久化,分布式锁,内存淘汰策略,删除策略,缓存三兄弟,线程模型)
6. redis里的I/O多路复用详细再说说
7. 缓存穿透、缓存击穿的解决方法
8. 缓存穿透会引发什么问题?
9. rpc项目的背景,功能
10. 一次rpc调用会经历哪些过程?(代理,编解码,网络通信,熔断降级等等)
11. 服务端怎么知道客户端调用了什么方法?(编码规则?)
12. java怎么保证并发安全(synchronized,lock,原子类这些)
13. 讲讲lock接口怎么实现的(CAS+AQS)
14. CAS是干什么的?
15. CAS为什么要判断内存里的值与旧值是否相等,举个例子
16. CAS能保证线程安全吗
17. ThreadLocal了解吗
18. ThreadLocal的内存泄露如何产生的
19. ThreadLocal为什么ThreadLocalMap中key是弱引用,value是强引用
20. 聊聊数据库(索引,事务,锁,三大日志,主从复制,性能调优)
21. 聊聊JVM(JVM内存构成,垃圾回收器,垃圾回收算法)
22. 怎么判定这个这个对象是垃圾
23. 哪些可以作为GC-root
24. 最有成就感的事(项目结合AI)
25. 对大模型有哪些了解(prompt,function-call,Rag)
全部评论
快来,有在投简历的同学吗,寻找机会?我动态里有
点赞 回复 分享
发布于 04-22 19:35 浙江
约二面没有
点赞 回复 分享
发布于 04-17 12:35 河南
已老实
点赞 回复 分享
发布于 04-15 12:37 河北
有手撕吗
点赞 回复 分享
发布于 04-14 23:19 辽宁

相关推荐

06-27 09:13
黑龙江大学 Java
面试体验是很棒的,面试官都非常准时,面试过程中也会去引导,会沿着你的回答继续去问自我介绍项目介绍项目中提到的线程池干什么用的?还有什么创建线程池的方法?线程池的核心参数。拒绝策略?线程池收到任务后执行流程?如果请求量比较大怎么调参数?项目中 ConcurrentHashMap 干什么用的?为什么要用他别的不行吗?如果不用他你会怎么实现?介绍项目中对接ai生成可视化图表。项目中用 ThreadLocal 做什么的?知道 ThreadLocal的内存泄露问题吗?为什么要把key设置为弱引用? ThreadLocal底层是怎么实现的?为什么要用Redis作缓存?Redis为什么快?Redis雪崩和击穿问题。Redis大key问题。如果让你来设计你会用什么思路解决?除了缓存Redis还能干什么?用过Redis当消息队列吗?为什么不如MQ?刚刚提到Redis持久化机制,介绍一下。聊了聊笔试的第三题派对男女匹配问题说一下常见的排序算法,手撕归并介绍jvm垃圾回收算法。怎么判断对象是否是垃圾?假如你项目上线后突然有个功能出现故障了,要怎么办?之后就聊了聊学校学习的一些事,如果要学习新知识会怎么学?看视频还是看文章?怎么做技术选型的?问了下个人优点,有没有考研打算,为什么不考研?之前参加过多少面试?准备面试多久了?平时会去背八股吗?那如果遇到八股没背到的东西怎么回答呢?
MOMOUX一面5人在聊 查看16道真题和解析
点赞 评论 收藏
分享
06-27 07:29
已编辑
中国海洋大学 Java
一笑而过2222:4. Redis缓存更新机制 核心策略: - 过期删除:通过 expire 设置键的过期时间,到期后由后台线程(惰性删除+定期删除)处理。 - 惰性删除:客户端访问时检查是否过期,过期则删除。 - 定期删除:每隔一段时间随机检查部分键,删除过期键(通过配置 hz 控制检查频率)。 - 主动更新:应用主动调用 set / del 等命令更新缓存,常见场景: - 数据变更时(如数据库更新后),同步更新缓存。 - 缓存失效前(如提前30秒),后台线程主动刷新(“缓存预热”)。 - 淘汰策略:当内存不足时,按策略淘汰旧数据(如LRU、LFU、随机等,见第5点)。 5. Redis的LRU机制(Least Recently Used) 原理: - 近似LRU:Redis并非严格实现LRU,而是采样少量键(默认5个),淘汰其中最久未使用的键,通过 maxmemory-samples 参数调整采样数量。 - 实现方式:每个键维护 lru 字段(记录最后一次访问时间),淘汰时比较采样键的 lru 值。 - 优化策略: - Redis 4.0引入LFU(最不常用) 策略,结合访问频率和时间淘汰数据。 - 可通过 maxmemory-policy 配置淘汰策略,如 allkeys-lru (所有键中使用LRU)、 volatile-lru (仅过期键中使用LRU)。 6. Redis集群 核心架构(以Redis Cluster为例): - 分片机制: - 数据按哈希槽(Hash Slot)分布,共16384个槽,每个节点负责部分槽。 - 键通过 CRC16(key) % 16384 计算归属的槽,路由到对应节点。 - 节点角色: - 主节点(Master):负责读写操作,维护数据和槽信息。 - 从节点(Slave):复制主节点数据,主节点故障时可自动选举为新主(通过Raft协议)。 - 高可用机制: - 自动故障转移:当主节点下线,从节点通过投票成为新主,保证服务不中断。 - 数据冗余:每个主节点至少有一个从节点,避免单点故障。 - 集群通信: - 节点间通过Gossip协议交换状态信息(如节点存活、槽分配),维护集群拓扑。 - 典型部署: - 至少3个主节点(每个主带1个从),形成3主3从架构,保证容错性(最多允许1个主节点故障)。 补充:Redis集群的优缺点 - 优点: - 支持海量数据(通过分片扩展内存)。 - 高可用性(故障自动转移)。 - 读写分离(从节点可承担读请求)。 - 缺点: - 不支持多键事务(跨节点键无法原子操作)。 - 客户端需处理分片路由(或通过中间件如Codis、Twemproxy)。 - 集群扩展时需迁移数据(通过 redis-trib 工具自动迁移槽)。
点赞 评论 收藏
分享
评论
7
25
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务