上海联影面试(部分)(未完全解析)

一面

  • Spring Boot为什么可以自启动,且变成一个web项目?
  • 本地连不上网,Maven缺一个jar包,怎么解决?
  • linux用什么命令找到占用指定端口的进程,并杀掉?Answer by new bing:
  1. 查找被占用端口的PID:
    sudo netstat -nlp | grep :端口号
  2. 杀掉这个进程:
    sudo kill -9 PID
  • redis的线程模型是怎样的?为什么redis读写效率高?Answer by new bing: Redis读写效率高的原因有以下几点:
    Redis采用了内存数据库,数据存储在内存中,读写速度非常快。
    Redis采用单线程模型,避免了多线程之间的竞争和锁等问题。
    Redis采用了多路复用技术,可以同时处理多个客户端请求。
    Q: redis5.0以后开始支持多线程,这个怎么理解(作者注:搜了下,似乎应该是6.0)。
    参考答案1

因为读写网络的read/write系统调用占用了Redis执行期间大部分CPU时间,瓶颈主要在于网络的 IO 消耗, 所以选择多线程IO来实现读写。主线程来执行Redis命令。

  • mysql联合索引最左前缀匹配的原理2
    在这里插入图片描述
    MySQL创建联合索引的规则是首先会对联合索引的最左边第一个字段排序,在第一个字段的排序基础上,然后在对第二个字段进行排序。所以b=2这种查询条件没有办法利用索引。

  • jwt的签名算法可以使用HMAC或者HS256,你在项目中用的哪一种?A:HS256。Q:实践中有办法篡改签名吗?我上网简单搜了下没找到很合适的资料,除非是密钥泄露。

  • mysql为了解决幻读,除了提升事务隔离级别为可序列化,还有其他办法吗?

  • 了解流程引擎吗

二面

  • redis6.0有哪些新特性?参考答案3:Redis 6.0引入多线程IO,但多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程。之所以这么设计是不想因为多线程而变得复杂
  • 什么时候适用redis发布订阅,什么时候适用Kafka等MQ?参考答案4
  1. Kafka与Redis PUB/SUB之间较大的区别在于Kafka是一个完整的系统,而Redis PUB/SUB只是一个套件(utility)——没有冒犯Redis的意思,毕竟它的主要功能并不是PUB/SUB。
  2. Redis 消息推送(基于分布式pub/sub)多用于实时性较高的消息推送,并不保证可靠。 Kafka保证可靠但有一些延迟。redis-pub/sub断电就清空,没有持久化。
  • redis单机大概能承受多大qps?参考答案:10w+
  • 你们有非功能需求的概念吗?A:性能。Q:还有吗?A:可用性。Q:从软件的角度你怎样对可用性提出需求?你怎样从技术上保证可用性,而不是把可用性全部押在基础设施上。举例说明你如何从软件架构设计上提高系统可用性?A:集群防单点,限流、熔断、降级。Q:你们公司有没有用过容器?A:用的。Q:用的什么k8s编排工具? A:就是k8s。Q:原生的k8s吗?

  1. 一文看懂Redis 6.0多线程IO ↩︎

  2. 面试中常被提到的最左前缀匹配原则 ↩︎

  3. Redis 6.0 新特性 ↩︎

  4. 大数据系列文章之Redis与Kafka的区别 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_23204557

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值