最新大厂C++面试真题合集,大厂面试百日冲刺 day3
美团二面1. Redis的数据类型
[*]字符串 (String): 可以包含任何数据,如文本或数字。
[*]哈希 (Hash): 键值对集合,适合存储对象。
[*]列表 (List): 有序集合,可以添加或删除元素的序列。
[*]集合 (Set): 不重复元素的无序集合。
[*]有序集合 (Sorted Set): 不重复元素的集合,每个元素关联一个权重,元素按权重有序排列。
[*]位图 (Bitmap): 通过位操作处理的字符串。
[*]HyperLogLogs: 一种用来做基数统计的数据结构,如计算唯一值数量。
[*]地理空间 (Geo): 用来存储地理位置信息并执行范围查询的数据类型。
[*]流 (Streams): 用于存储一系列消息,适合消息队列和日志应用。
2. 哈希类型的应用场景?
[*]存储用户信息,如用户名、密码、邮箱等。
[*]缓存内容中的结构化数据,比如网页中的用户个人资料。
[*]存储对象属性和其对应值。
[*]实现购物车功能,以用户ID为键,商品和数量为值。
[*]维护多个计数器,如网站页面的点击数、产品评分等。
3. Redis的哈希类型有什么好处
[*]内存高效:使用哈希类型存储小对象可以节省内存。
[*]便于操作:可以一次性读写多个字段,方便对对象的操作。
[*]数据分组:哈希类型允许将相关的数据字段组织在一起,提高数据的整理性和可读性。
4. 哈希类型牺牲了什么(缺点)?
哈希类型牺牲了以下几点:
[*]键空间:每个字段都存在于局部键空间中,不可用于全局查询。
[*]数据结构复杂性:相比基本数据类型,哈希需要管理字段名和值,增加处理复杂性。
[*]细粒度操作限制:与字符串类型相比,哈希类型不支持像“追加”这样的细粒度操作。
5. json的序列化与反序列化
JSON的序列化是将数据结构或对象转换成JSON格式的字符串的过程。反序列化是将JSON格式的字符串转换回原始数据结构或对象的过程。这两个过程允许数据在不同的系统或程序之间以文本形式安全地传输和存储。
6. 使用json进行通信的好处?
[*]轻量级:JSON是轻量的数据交换格式。
[*]跨平台兼容:它被广泛支持,可在不同的编程语言和平台中使用。
[*]易读易写:其格式清晰,便于人类阅读和编写。
7. POP3和IMAP的区别
POP3和IMAP是电子邮件获取的两种协议,它们的主要区别如下:
[*]邮件存储:POP3通常将邮件下载到本地客户端,并且可能会从服务器上删除,而IMAP则在服务器上保存邮件的副本,支持在多个设备上同步邮件。
[*]多设备访问:IMAP更适合多设备访问和管理邮件,因为它在服务器上保留信息和邮件的状态(如读/未读、标记等)。
[*]占用空间:POP3可能会节省服务器空间,因为邮件可以被下载并删除,IMAP则需要更多的服务器存储空间因为邮件保留在服务器上。
[*]灵活性:IMAP提供了比POP3更高的灵活性,可以对邮件进行更复杂的操作,如搜索、文件夹管理等。
8. 知道bio/nio/aio/dio?
[*]BIO(Blocking I/O): 同步阻塞I/O,应用程序在执行I/O操作时会被阻塞,直到I/O操作完成。
[*]NIO(Non-blocking I/O): 同步非阻塞I/O,应用程序执行I/O操作时不会被阻塞,可以立即返回继续执行其他任务,但需要不断地查询I/O操作是否完成,也称为轮询。
[*]AIO(Asynchronous I/O): 异步I/O,应用程序发起I/O操作后可立即返回进行其他任务,当I/O操作完成时,会收到通知或调用预设的回调函数。
[*]DIO(Direct I/O): 直接I/O,绕过操作系统的缓存,直接从磁盘读写数据,通常用于需要高性能的场景。
顺便吆喝一句,民族企业大厂,前后端测试捞人,感兴趣的来!
页:
[1]