一面
- Spring Boot为什么可以自启动,且变成一个web项目?
- 本地连不上网,Maven缺一个jar包,怎么解决?
- linux用什么命令找到占用指定端口的进程,并杀掉?Answer by new bing:
- 查找被占用端口的PID:
sudo netstat -nlp | grep :端口号
- 杀掉这个进程:
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:
- Kafka与Redis PUB/SUB之间较大的区别在于Kafka是一个完整的系统,而Redis PUB/SUB只是一个套件(utility)——没有冒犯Redis的意思,毕竟它的主要功能并不是PUB/SUB。
- Redis 消息推送(基于分布式pub/sub)多用于实时性较高的消息推送,并不保证可靠。 Kafka保证可靠但有一些延迟。redis-pub/sub断电就清空,没有持久化。
- redis单机大概能承受多大qps?参考答案:10w+
- 你们有非功能需求的概念吗?A:性能。Q:还有吗?A:可用性。Q:从软件的角度你怎样对可用性提出需求?你怎样从技术上保证可用性,而不是把可用性全部押在基础设施上。举例说明你如何从软件架构设计上提高系统可用性?A:集群防单点,限流、熔断、降级。Q:你们公司有没有用过容器?A:用的。Q:用的什么k8s编排工具? A:就是k8s。Q:原生的k8s吗?
一文看懂Redis 6.0多线程IO ↩︎
面试中常被提到的最左前缀匹配原则 ↩︎
Redis 6.0 新特性 ↩︎
大数据系列文章之Redis与Kafka的区别 ↩︎