为什么选择后端?喜欢当幕后角色,处理数据和业务逻辑,保证数据的一致性和安全性,以及优化系统性能对后端的了解?职责:处理业务逻辑、数据存储与访问、权限管理、接口提供、性能优化、可靠性保障技术栈:Go/C++/Java/Python 等语言都可以、数据库、缓存、消息队列为什么数据处理不能放在前端或客户端?安全性:前端/客户端容易被篡改,敏感数据和逻辑不适合放在用户设备。一致性:多端数据统一、事务处理和同步问题,必须由后端控制。性能和资源限制:前端设备性能有限,大规模计算或数据处理可能会拖慢用户体验。可维护性:业务逻辑放在客户端,每次改动都要更新客户端,难以快速迭代。介绍一下 Reactor 模型?- 非阻塞 I/O- 事件驱动模型- 当数据来临时,内核只负责通知程序,并不会像 Proactor 那样去读取数据内核是如何做通知的?内核检测 fd 状态并通知用户态,用户态 Reactor 只做回调1. 用户空间调用 epoll_create 创建 epoll 实例2. 注册 fd3. 内核将 fd 加入 epoll 内部红黑树4. 当 fd 就绪时,内核将其放入就绪列表5. 用户空间调用 epoll_wait,内核返回就绪事件列表Reactor 是如何处理并发的?主线程负责监听事件,事件发生后将处理操作交由子线程完成Zset 用来做什么?排行榜key -> (member, score)参数顺序ZADD key score memberscore 相同时如何排序?根据 member 继续排序如果要按时间先后进行排序呢?将时间戳拼接在 score 的尾部,或者将其拼接在 member 中面试体验最差的一集,一进面试间看见两个面试官,以为会被拷打,结果面了 13min 就结束了,真的牛逼这种情况我已经知道面试结果了,反问都懒得问了