楼主收到通知了吗,我是27号面的,有的小伙伴也是27号,但是已经收到通知了
点赞 3

相关推荐

1.简单介绍一下项目2.你怎么用的rabbitmq解决订单超时取消利用了消息延迟插件,介绍了一下插件原理3.除了这种方式还有吗,不采用mq异步线程和时间戳判断超时时间4.还有别的方式吗?项目非常小,有没有更可靠更简单的方式?答不上来- 定时任务(如 Spring 的@Scheduled或 Quartz):每隔固定时间(如 1 分钟)扫描订单表,判断超时状态(适合小项目,轻量且可靠,无需引入 MQ)。- 优势:实现简单(几行代码),依赖少,适合数据量小的场景。5.那你有考虑过你为什么要设计使用rabbitmq吗?没考虑技术选型逻辑:需结合项目场景说明必要性,如 “订单超时取消是异步场景,用 MQ 可解耦订单系统和取消逻辑(避免订单服务阻塞);且延迟插件能精准控制超时时间,比定时任务更高效”6.服务降级是什么?7.你的服务降级对你的系统有什么提升吗?8.你还有别的手段提高用户体验提升系统性能吗?回答不满意- 缓存(Redis 缓存热点数据,商品详情,减少 DB 查询);- 异步化(非实时操作异步处理,比如 “下单后发送短信” 用 MQ 异步,避免阻塞主流程);- 数据库优化(索引优化、分库分表、SQL 优化);- 负载均衡(多实例部署,分担流量)9.jvm双亲委派、垃圾回收机制、jvm内存结构10.数据库的事务隔离级别有哪些11.sql语句的执行过程错答成sql语句各个部分执行的顺序正确流程:客户端发送 SQL 到服务器;解析器(Parser):语法分析(检查 SQL 语法)→ 语义分析(检查表 / 字段是否存在);优化器(Optimizer):选择最优执行计划(如走哪个索引);执行器(Executor):调用存储引擎接口执行,返回结果。12.mysql索引的b+树是怎么设计的13.为什么要设计成叶节点存储数据,非叶节点存储索引矮胖结构,查询速度快14.就这样吗,没有原理吗?b树不行吗?b+树就快吗?b树非叶节点也存储数据,不支持范围查找15.写sql语句怎么减少回表查询脑抽了,没答上来覆盖索引16.锁、死锁、sychronized、cas这些了解吗?
查看16道真题和解析
点赞 评论 收藏
分享
一笑而过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 工具自动迁移槽)。
字节跳动二面533人在聊
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务