• 面试题收集


    负载测试:检查应用程序在预期用户负载下执行的能力,目标是在软件应用程序上线前识别性能是否达到预期.
    压力测试:在极端负载下测试应用程序的执行能力,用以了解应用程序如何处理高流量、高并发的数据,确定应用程序的瓶颈.

    QPS:Queries Per Second是衡量信息检索系统(例如搜索引擎或数据库)在一秒钟内接收到的搜索流量的一种常见度量。该术语在任何请求-响应系统中都得到更广泛的使用,更正确地称为每秒请求数(RPS:Request Per Second)。
    RT(Response-time)响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。该请求可以是任何东西,从内存获取,磁盘IO,复杂的数据库查询或加载完整的网页。
    QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

    Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

    PV全称Page View,中文翻译即页面浏览。
    其具体的度量方法是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到该请求后,会将请求对应的网页(Page)发送给浏览器,从而产生一个PV。
    只要是请求发送给了浏览器,无论页面是否完全打开(下载完成),都计为1个PV。

    什么是并发量?
    并发量指的是同一时刻向服务器的请求数量。
    什么是吞吐量?
    吞吐量是指单位时间内,成功传输的数据量。

    mysql 常用的聚合函数
    count(col): 表示求指定列的总行数
    max(col): 表示求指定列的最大值
    min(col): 表示求指定列的最小值
    sum(col): 表示求指定列的和
    avg(col): 表示求指定列的平均值

    select * from employee left join deapartment on department_id=employee_id;

    delete * from table;

    update

    insert

    select * from employee as e left join department d on e.department_id=d.id;

    2.说说Redis的基本数据结构类型
    大多数小伙伴都知道,Redis有以下这五种基本类型:

    String(字符串)
    Hash(哈希)
    List(列表)
    Set(集合)
    zset(有序集合)

    缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。

    通俗点说,读请求访问时,缓存和数据库都没有某个值,这样就会导致每次对这个值的查询请求都会穿透到数据库,这就是缓存穿透。

    4.2 缓存雪奔问题
    缓存雪奔: 指缓存中数据大批量到过期时间,而查询数据量巨大,请求都直接访问数据库,引起数据库压力过大甚至down机。

    缓存雪奔一般是由于大量数据同时过期造成的,对于这个原因,可通过均匀设置过期时间解决,即让过期时间相对离散一点。如采用一个较大固定值+一个较小的随机值,5小时+0到1800秒酱紫。
    Redis 故障宕机也可能引起缓存雪奔。这就需要构造Redis高可用集群啦。

    4.3 缓存击穿问题
    缓存击穿: 指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求打到db。

    缓存击穿看着有点像,其实它两区别是,缓存雪奔是指数据库压力过大甚至down机,缓存击穿只是大量并发请求到了DB数据库层面。可以认为击穿是缓存雪奔的一个子集吧。有些文章认为它俩区别,是区别在于击穿针对某一热点key缓存,雪奔则是很多key。

    RDB持久化,是指在指定的时间间隔内,执行指定次数的写操作,将内存中的数据集快照写入磁盘中,它是Redis默认的持久化方式。执行完操作后,在指定目录下会生成一个dump.rdb文件,Redis 重启的时候,通过加载dump.rdb文件来恢复数据。

    AOF(append only file) 持久化,采用日志的形式来记录每个写操作,追加到文件中,重启时再重新执行AOF文件中的命令来恢复数据。它主要解决数据持久化的实时性问题。默认是不开启的。

  • 相关阅读:
    是时候和 Confluence 说再见了
    Hbase的scan原理
    STM32H750之FreeRTOS学习--------(五)临界段代码保护
    2023数学建模国赛选题建议及BC题思路
    C#实现访问OPC UA服务器
    DC-5靶机
    threejs绘制多个多边形
    Kotlin return 和 loop jump
    2023.10.20 LED驱动
    [MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目
  • 原文地址:https://blog.csdn.net/weixin_45482334/article/details/127848675