baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 个人项目

  • 个人面试面经

    • 百度后端实习二面
    • 柠檬微趣
    • 字节秋招一面20230808
    • 蔚来实习一面20230811
    • 快手秋招一面20230811
      • 诺瓦星云秋招一面20230924
      • 元戎启行秋招一面20230824
      • 百度健康实习一面20230824
      • 快手校招一面20230828
      • 美团校招一面20230829
      • 腾讯校招一面20230830
      • 诺瓦星云二面20230830
      • 美团校招二面20230831
      • 元戎启行二面
      • 快手二面
      • 美团三面
      • 快手三面hr
      • 多益网络一面
      • 招商银行一面
      • 美团一面
      • 顺丰一面
      • 诺瓦三面hr
      • 好未来一面
      • 顺丰三面hr
    • 八股记忆

    • 工作积累

    • 工作
    • 个人面试面经
    xugaoyi
    2023-08-11
    目录

    快手秋招一面20230811

    # 面试

    1. 实习项目累积量平台介绍,流量qps是如何下降的。详细介绍底层的存储结构是怎么样的
    2. 底层结构为什么存储string而不存储map,每次请求来了需要修改对应分片,不是用map更好吗?
    3. 累积量平台的精度是怎么优化的。
    4. 为什么redis有string结构,但是没有一个int结构
    5. LRU算法
    6. LinkedList底层原理,remove原理,时间复杂度
    7. mongoDb迁移mysql背景,迁移方案详解,存量数据迁移过程中,update怎么处理。
    8. 项目中mysql的结构是怎么样的,主从结构吗?读写流量都在主库上吗,如果在从库上读,会有什么问题吗?

    # 解决

    1. 按照实际讲解

    2. 新设计的结构中,每个时间分片需要进行手动逻辑判断是否过期,而map的是无法指定filed过期的。另外string可以进行压缩,map不能进行很好的压缩

    3. 解决了读放大问题,也就可以使用更多的分片。

    Redis 的设计目标之一是简单性和通用性。在 Redis 的设计哲学中,它希望提供一组通用的数据结构,可以在不同的场景下灵活使用,而不是针对每种数据类型都提供一个独立的数据结构。

    这种设计理念在 Redis 中体现为使用 "string" 数据结构来存储任意类型的数据,包括整数。这样的设计有以下几个优点:

    1. 通用性和灵活性:使用单一的 "string" 数据结构,Redis 可以存储字符串、整数、浮点数、二进制数据等各种类型的数据。这使得 Redis 在各种场景下都可以使用,而不需要针对每种数据类型都引入单独的数据结构。
    2. 简化实现和维护:引入额外的数据类型会增加 Redis 的复杂性,包括底层的存储和命令解析逻辑。使用统一的 "string" 数据结构可以简化 Redis 的实现和维护,减少代码复杂性。
    3. 性能优势:Redis 的设计追求高性能和低延迟。通过使用统一的数据结构,可以减少数据类型转换的开销,从而提高性能。

    虽然 Redis 中没有单独的 "int" 类型,但通过对 "string" 数据结构进行整数操作,可以实现与整数类型相关的操作,如自增、自减、比较等。这种设计在实际应用中已经得到了验证,并且使得 Redis 在各种场景下都能够胜任。

    1. 常规数据结构
    2. 常规数据结构
    3. upsert语句
    4. 不太清楚

    思考:如果读在从库,写在主库,那么可能会出现主从延迟的问题

    # 感悟

    面试官听实习的时候很认真,整体都是在稳步的交流中,算法也是很常规的算法。

    编辑 (opens new window)
    上次更新: 2024/02/22, 14:03:19
    蔚来实习一面20230811
    诺瓦星云秋招一面20230924

    ← 蔚来实习一面20230811 诺瓦星云秋招一面20230924→

    最近更新
    01
    spark基础
    02-22
    02
    mysql读写分离和分库分表
    02-22
    03
    数据库迁移
    02-22
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式