快手日常后端一面

1.redis的持久化,AOF重写,数据结构,使用方式
2.数据库的锁
3.零拷贝
4.Java常用包及其设计模式
5.RocketMQ的机制
#快手#
全部评论
没有算法题吗,我觉得这纯粹八股文了😂。Redis的持久化 Redis提供两种持久化方式:RDB和AOF。 RDB是一种快照方式,它能够在指定时间间隔内,将当前内存中的数据生成一份快照保存到磁盘上。RDB的优势是它可以在备份时非常快速,但是它的数据很可能会丢失,因为如果Redis在进行持久化时出现故障,那么所有未被保存的数据都会丢失。 AOF以日志的形式记录服务器接收到的每个写操作。可以在Redis启动时重新执行这些操作来重建原始数据。Redis还提供了一种AOF重写功能,可以将日志文件重写为新的紧凑格式,以减小磁盘消耗。 Redis支持五种数据结构:字符串、列表、哈希表、集合和有序集合。 使用方式: 在命令行中使用redis-cli工具与Redis进行交互 使用Redis的Java客户端Jedis或者Lettuce进行访问 使用Spring Data Redis在Spring应用程序中与Redis集成 数据库的锁 数据库锁机制是指在对数据库中的数据进行读写操作时会自动或者人为的对数据进行加锁,以保证数据的一致性和完整性。主要分为悲观锁和乐观锁。 悲观锁:在操作每一条数据时、先对其进行加锁,以防止其他线程同时对同一条数据进行操作。悲观锁机制适用于对数据的并发请求比较频繁的场合下。 乐观锁:在操作数据时、不进行加锁,在提交更新操作的时候,判断该数据是否被其他线程修改过。如果没有被修改、则更新成功、否则回滚。乐观锁适用于并发较少的场合。 零拷贝 零拷贝机制是指在数据处理过程中,将数据从一个存储区域传递到另外一个存储区域,而不需要经过CPU和内存的拷贝过程。这样的好处是可以减轻系统的开销、提高系统效率。 Java中的零拷贝技术有两种: NIO中的传输通道:可以使用transferFrom和transferTo方法,将数据在通道之间进行传递。 MappedByteBuffer:可以将整个文件或者文件的一部分映射到一个Buffer中,在通过该Buffer进行读写操作,从而达到零拷贝的效果。 Java常用包及其设计模式 Java常用的核心包有:java.lang、java.util、java.io、java.net等。其中,java.lang包包含了Java语言的基本类和接口,java.util包提供了一些实用的工具类,java.io包包含了一系列用于操作输入输出流的类和接口,java.net包为网络编程提供支持。 Java中常用的设计模式有:单例模式、工厂模式、抽象工厂模式、装饰者模式、观察者模式、适配器模式等。这些设计模式的应用可以提高代码的复用性、降低代码的复杂度、提高代码的可读性。 RocketMQ的机制 RocketMQ是一个基于Java开发的分布式消息队列系统,具有高可用、高性能、可伸缩性等特点。其主要机制包括: Producer:生产者角色,负责产生并发送消息到Broker。 Broker:消息服务器,专门负责接收发送的消息,存储消息,以及转发消息到相应的Consumer。 Consumer:消费者角色,负责订阅消息并从Broker端拉取消息并消费。 RocketMQ采用Topic和Tag来进行消息的分类和过滤,支持集群和广播消息模式。RocketMQ还支持消息的顺序性和事务消息功能,用于满足不同的业务需求。
30 回复 分享
发布于 2023-05-20 00:41 陕西
就这么几道题吗……快手我记得挺难的
1 回复 分享
发布于 2023-06-18 20:34 上海
m
1 回复 分享
发布于 2023-05-27 11:49 浙江
什么部门
1 回复 分享
发布于 2023-05-25 17:07 北京

相关推荐

02-28 19:07
已编辑
成都理工大学 Java
一面2.12一面是产品leader面的,整体来说偏业务面试官叫我共享屏幕演示Agent平台1 你的这个Agent平台做了什么?2 Agent平台的盈利模式是什么?3 平台的用户画像?4 做这个项目的核心目标是什么?5 实习中的规则引擎解决了什么问题?6 场景题:给出一个关于广告创意平台的场景,如何设计Agent赋能7 了解过哪些Agent框架主要是说了python的一些框架8 整体职业规划二面(技术面)2.271 个人信息:- 请做一个自我介绍。- 在你的项目里,挑一个技术难度大或有成就感的点介绍一下。- 你的技术栈主要是Java,对其他语言有接触吗?- 你平时工作中用过哪些AI编程工具?- 对Python掌握如何?相比Java有什么优势或劣势?- 如果要做Go开发,你介意转语言吗?- 对Go有哪些了解?说了一下协程和虚拟线程,提了一下Go用于云原生比较多2 实习:- 多版本快照模型和乐观锁解决并发更新问题,你们是怎么处理的?- 回滚时如何保证线上实例不受影响?- RTE从150ms降到25ms,你们如何定义和拆分核心链路和非核心链路?- 非核心链路执行失败,如何保证核心链路的数据一致性?- 应用程序关闭优化,进程关闭耗时325秒,你们是如何监控的?- 业务池未响应,具体原因是什么?- 关闭长任务时的数据一致性如何保证?- 使用本地消息表如何在重启后恢复数据?3 Agent项目- MCP网关实现协议转换,你们的MCP协议解决了什么问题?- 大模型(LLM)的熔断和降级是如何处理的?- 多跳检索是怎么实现的?循环检索策略是什么?4 MySQL和Redis- MySQL、Redis使用频率及场景是什么?- MySQL的InnoDB为什么用B+树做索引?- 联合查询索引怎么建?- 如果只用联合索引的非最左字段查询,会失效吗?总结归纳了MySQL索引失效了根本原因是破坏了索引的有序性- MySQL事务一致性是如何保障的?这里延申比较多,从ACID开始答,提到了SQL语句执行顺序和WAL,最后说了一下怎么选择事务隔离级别- Redis常见的数据结构有哪些?- 排行榜类型的数据结构应该用哪种?为什么?- MySQL和Redis之间如何保证数据一致性?没有说太多具体方案,主要是提了一下自己的理解5 平时怎么使用AI工具?
点赞 评论 收藏
分享
评论
8
72
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务