博客记录-day131-Redis,计网面试题

134 阅读4分钟

一、语雀-Redis面试题

1、Redis是AP的还是CP的?

✅Redis是AP的还是CP的?

image.png

2、介绍一下Redis的集群模式?

✅介绍一下Redis的集群模式?

Redis有三种主要的集群模式,用于在分布式环境中实现高可用性和数据复制。这些集群模式分别是:主从复制(Master-Slave Replication)、哨兵模式(Sentinel)和Redis Cluster模式。

1. 主从复制模式

image.png

2. 哨兵模式

image.png

3. Cluster模式

image.png

3、什么是Redis的数据分片?

✅什么是Redis的数据分片?

image.png

image.png

4、Redis 使用什么协议进行通信?

✅Redis 使用什么协议进行通信?

image.png

5、Redis 与 Memcached 有什么区别?

✅Redis 与 Memcached 有什么区别?

image.png

6、Redis为什么这么快?

✅Redis为什么这么快?

image.png

7、Redis 支持哪几种数据类型?

✅Redis 支持哪几种数据类型?

image.png

8、Redis为什么要自己定义SDS?

✅Redis为什么要自己定义SDS?

Redis自定义SDS(Simple Dynamic String,简单动态字符串)是为了解决C语言原生字符串在性能、功能和灵活性上的不足:

  1. 高效操作:SDS直接存储字符串长度,获取长度时间复杂度为O(1)(C需遍历),且支持预分配和惰性释放策略,减少扩容开销;
  2. 二进制安全:兼容任意字节流(如图片、序列化数据),而C字符串以\0结尾,无法处理含空字符的数据;
  3. 内存优化:通过结构体分层设计(如lenfree字段),支持动态调整和碎片整理,提升内存利用率;
  4. 功能扩展:提供字符串修改、拼接等操作的API,简化开发并保证高性能。
    这些改进使Redis能高效处理高频读写场景,满足其作为内存数据库的核心需求。

image.png

9、Redis中的Zset是怎么实现的?

✅Redis中的Zset是怎么实现的?

image.png

image.png

image.png

1. 何时转换

image.png

2. 跳表

image.png

10、Redis为什么被设计成是单线程的?

✅Redis为什么被设计成是单线程的?

image.png

image.png

11、为什么Redis设计成单线程也能这么快?

✅为什么Redis设计成单线程也能这么快?

image.png

image.png

多路复用的IO模型本质上仍然是同步阻塞型IO模型。

Redis 使用单线程配合 I/O 多路复用(如 epoll),其设计精妙之处在于:

  • 非阻塞 I/O:网络请求通过 epoll 监听,内核仅在事件就绪时通知 Redis 处理,​无需阻塞线程等待数据

  • 单线程顺序执行:所有命令按顺序处理,避免了多线程的锁竞争和上下文切换开销。

  • 高效性来源

    • I/O 多路复用:单线程可同时管理成千上万的客户端连接,高效分发事件。
    • 内存操作:所有数据驻留内存,读写速度极快(纳秒级)。
    • 无阻塞操作:耗时任务(如持久化)通过异步子进程处理,不污染主线程。

image.png

12、为什么Lua脚本可以保证原子性?

✅为什么Lua脚本可以保证原子性?

image.png

13、Redis中的setnx命令为什么是原子性的

✅Redis中的setnx命令为什么是原子性的

image.png

14、Redis 5.0中的 Stream是什么?

✅Redis 5.0中的 Stream是什么?

image.png

15、Redis的持久化机制是怎样的?

✅Redis的持久化机制是怎样的?

1. RDB

image.png

2. AOF

image.png

3. 比较

image.png

16、Redis 的事务机制是怎样的?

✅Redis 的事务机制是怎样的?

image.png

image.png

二、语雀-计网面试题

1、介绍一下OSI七层模型?

✅介绍一下OSI七层模型?

image.png

2、什么是TCP的粘包、拆包问题?

✅什么是TCP的粘包、拆包问题?

image.png

image.png

3、ARP 与 RARP 的区别是什么?

✅ARP 与 RARP 的区别是什么?

image.png

4、路由器与交换机的区别是什么?

✅路由器与交换机的区别是什么?

image.png

5、什么是TCP三次握手、四次挥手?

✅什么是TCP三次握手、四次挥手?

1. 三次握手

image.png

2. 四次挥手

image.png

image.png

image.png

6、TCP是如何保证可靠传输的?

✅TCP是如何保证可靠传输的?

image.png

7、什么是HTTP/3的QUIC协议?

✅什么是HTTP/3的QUIC协议?

image.png

7、为什么需要HTTP/2,他解决了什么问题?

✅为什么需要HTTP/2,他解决了什么问题?

image.png

1. HTTP1.1

image.png

2. HTTP/2相对于HTTP/1.1有哪些改进

2.1 二进制分帧

image.png

2.2 多路复用

image.png

2.3 头部压缩

image.png

2.4 服务端推送

image.png

3. HTTP队头阻塞

image.png

image.png

image.png

8、HTTP/2存在什么问题,为什么需要HTTP/3?

✅HTTP/2存在什么问题,为什么需要HTTP/3?

1. TCP队头阻塞

image.png

2. TCP握手时长

image.png

9、Cookie,Session,Token的区别是什么?

✅Cookie,Session,Token的区别是什么?

image.png

image.png

10、HTTPS和HTTP的区别是什么?

✅HTTPS和HTTP的区别是什么?

image.png