快手日常后端一面

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 北京

相关推荐

08-01 19:46
中山大学 Java
这次面试主包表现不错 基本都答上来了[棒R]过两个小时就显示通过了然后约了第二天的主管面,非常丝滑了可以说..美中不足的是base北京,主包觉得有点远[叹气R]ok话不多说上面经项目拷打 省略一千字…消息队列如何实现功能解耦和压力分散?延迟队列是如何处理未完成任务的?整个流程的QPS或容量预估是多少?是否有进行性能测试?缓存与数据库的一致性如何保证(同步策略、定时任务间隔等)JVM垃圾回收 简述JVM的垃圾回收机制(分代回收、可达性分析)?有哪些垃圾回收算法(标记清除、标记整理等)?不同垃圾回收器(如CMS、G1)的特点和区别?多线程与锁 synchronized和volatile的区别?ReentrantLock的公平锁与非公平锁实现原理?CAS机制在锁中的应用?集合框架 HashMap和ConcurrentHashMap的区别?ConcurrentHashMap的分段锁机制(JDK 1.8前后变化)?MySQL MySQL索引的底层数据结构(B+树 vs B树)?为什么选择B+树?默认的事务隔离级别是什么?如何解决幻读问题(间隙锁)?Redis Redis为什么比数据库快(内存操作、IO多路复用)?Redis高可用方案(集群、哨兵模式)?数据分片(Sharding)如何实现?节点间如何通信?操作系统/网络HTTP请求处理流程 从客户端发起HTTP请求到服务端响应的完整过程(DNS解析、TCP连接、报文拆解等)?服务端架构中如何接收和处理请求(Web容器、业务逻辑分层)?消息队列RabbitMQ vs Kafka 为什么选择RabbitMQ而不是Kafka?两者在高并发场景下的差异?算法题合并区间(不是hot100):给定多个已排序的区间,如何合并重叠区间(需考虑边界条件)
哈基Map你这家伙:合并区间是hot100的呀
查看21道真题和解析
点赞 评论 收藏
分享
程序员牛肉:1.go的中小厂还是很少的,大多数还是Java。而Java的东西比go多太多了,所以公司基本都支持Java转go,而很少支持你go转Java 2.时间太晚了,现在有的厂秋招都开了,你作为26届的学生竟然一个实习都没有。经历太单薄了,很少会有hr愿意给你机会。现在计算机实在是太卷了。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
8
72
分享

创作者周榜

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