乐元素开心消消乐后端一面:排行榜与项目设计
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 实习项目的业务场景、技术栈和个人负责范围是什么?
- 课程预约数据从哪里同步到哪里,为什么需要同步,定时任务怎么做?
- 如何处理取消预约、连续课程的最后一节和跨天课程?
- Redis 快照保存什么,前端采用推送还是轮询,频率和并发如何估算?
- 延迟队列为什么同时使用 MySQL、ZSet 和 List,为什么不直接用已接入的 Kafka?
- Redis 重启丢失任务后如何恢复,RPOP 与 BRPOP 有什么区别?
- Kafka 怎样保证同一业务内有序,消费端再并发处理会怎样?
- Elasticsearch 相对 MySQL 的全文检索能力体现在哪里?
- 除了 List 与 ZSet,还使用过哪些 Redis 数据结构?
- Redisson 看门狗怎么续期,TTL 怎么设,大量任务都续期是否合适?
- ZSet 同分时如何排序,怎样让先达到同分的玩家排在前面?
- LangGraph 有哪些节点,输入输出、State 和条件边如何设计?
- 提示词增强包含什么,大模型怎样读取项目文件?
- 生成代码以后如何校验,是否启动项目验证,失败后怎样重试?
- 使用代码生成工具时,如何把握方案和代码质量?
《参考解析》
排行榜同分排序
Redis ZSet 在 score 相同时按 member 的字节字典序比较。如果业务需要先达分者在前,可把补齐宽度的时间信息和用户编号放进 member,并让查询方向与时间编码一致。也可以把分数和时间编码进 score,但要先计算数值范围与双精度的整数精度上限,不能无界地拼接两个整数。
搜索系统的价值
回答 ES 的优势要落在分词、倒排索引、相关性排序和多字段检索上。按主键查一行数据,MySQL 可能已经足够快;引入 ES 后还多了索引同步延迟和故障处理成本。
生成后的验证
让每个节点有明确的输入和产物,验证结果作为下一次修正的依据。编译通过只是第一步,还要检查核心业务行为、异常分支和权限边界。失败重试必须有停止条件,反复生成但不读取验证输出不会提高结果质量。