有点意思,成功引起了我的注意(欢迎讨论) 一 1. 红黑树单个节点的空间为链表的两倍,长度低时红黑树优势不大。退化阈值为6是为了留一定缓冲空间防止反复横跳,树化和反树化都是有开销的 2. 板子 3. jvm参数设置期望停顿时间,g1将堆空间分为若干的region并维护每个region的回收价值。g1根据历史数据预测本次gc时间,若高于期望停顿时间,gc时优先选定价值最大的若干region进行回收 4. jvm参数 5. 不能。用AtomicReference<T> 6. 工作线程的复用。key弱引用,且获取key等操作时会扫沿途的脏Entry,但仍不能完全防止。实际使用中必须在finally块中手动remove 7 8. 不懂 二 1. 不懂 2. 核心线程数cpu密集型取核数+1,io密集型看具体的时间占比,队列选有界,拒绝策略看具体业务场景 3. 不懂,猜可能是获取时其它线程并发修改? 4. cas栈顶元素,注意判空。后半问板子 5. 链式调用 .then() 三 1. 10种是真逆天,真就八股文呗。最左前缀只要讲清楚b+树索引的原理就很好答 2. 该拆表了。。子查询能优化,但10亿表长下还是会慢 3. 没见过。但是redis治理本就是平时不容忽视的一环,包括大key热key连接数key数量等,删一个key能把集群崩掉,说明这方面工作已经欠缺到一定程度了。。 4. 拆开分析。redis没有回滚机制不满足a,没有a就满足不了c,内存读写单线程没有i的概念,持久化策略无法完全防止数据丢失所以不满足d。综上redis事务acid皆不满足 5. 旁路 双删 监听binlog。秒杀场景一般旁路即可,一致性要求高可以上双删 6. 不会。如果服务端收到请求时slot正在迁移,会检查该部分数据是否已经被迁走。是则响应ASK重定向目标实例,否则直接返回数据 7. 查日志→定位→复现→分析原因。隔离级别设为rr,会默认以临键锁作为行锁的物理实现,锁间隙防插入从而在一定程度上避免幻读(不能完全防止) 四 1. 回滚 2. 参考snowflake 3. 不知道 4. 从两方面答,生产者→broker阶段依赖刷盘和ack,结合不同ack参数(异步半同步全同步)讲;消费者丢失消息的情况,可以等业务返回再手动提交offset,但要求下游业务幂等 5. 没用过dubbo,降级配fallback方法,指标达阈值自动触发降级策略,也可手动配置降级开关 6. 无分区全保。有分区保ap,购物车距离订单和支付还有一段距离,阻塞用户购物车操作影响体验 五 1. 风控领域的范畴,很复杂不是几句话能说明白的。可以从人机验证、ip检测、截/录屏检测、黑名单、用户画像等角度聊 2. rmq延时队列。定时任务扫表也是一种方案,但对大表开销高 3. 黑马点评 4. 前半问黑马点评,redisson是客户端本质上是多一层封装,将一系列操作打包进lua脚本中。hash存线程id实现可重入,zset存线程id实现公平锁
19 7

相关推荐

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