- 博客(9)
- 收藏
- 关注
原创 Redis最常见的10道面试题
什么是脑裂?脑裂是指在主从集群中,同时有两个主节点,它们都能接收写请求,导致不同客户端会往不同的主节点上写入数据,进一步导致数据丢失。为什么产生脑裂?主库是由于某些原因(比如网络通信故障)无法处理请求,也没有响应哨兵的心跳,被判断客观下线,重新选主。结果,原主库又重新开始处理请求了,此时哨兵还没有完成主从切换,客户端仍然可以和原主库通信,客户端发送的写操作就会在原主库上写入数据了。min-slaves-to-write:主库可以进行数据同步的最少从库数量,这样主库至少有 N 个从库。
2024-09-29 21:00:28
975
原创 MySQL最常见的10道面试题
事务操作执行时,会同时生成redo log,因为事务的数据先写入内存,再写入磁盘,当写入磁盘过程中出现数据库异常,可利用redo log。,MyISAM只支持表级锁。但注意:InnoDB的行锁实现在索引上,即如果访问没有命中索引,无法使用行锁,退化为表锁。,用于处理读写并发场景,使用无锁并发控制的策略处理读写冲突,读不阻塞写,写不阻塞读,提升事务并发处理能力。把一个表的多个字段拆成多个表,冷热拆分:热字段一个表,冷字段一个表,提升查询性能。:事务串行执行,可避免脏读、不可重复读、幻读,但效率低,不推荐。
2024-09-24 11:45:59
2098
原创 什么是架构师?要不要转架构师?
在回答什么是架构师之前,我们先聊聊什么是架构。在不同的领域中,“架构” 有着不同的含义,但总体来说,架构是指对一个系统、组织或结构的整体设计和规划。比如:改革开放总架构师就是邓爷爷当然,我们主要聊什么是软件架构?软件架构是指软件系统的高层次结构和组织方式,描述了软件系统的各个组件、模块以及它们之间的关系,包括如何交互、如何协同工作以实现系统的功能。核心是2点:你需要在一个复杂的系统中抽象出一个个的结构(或者叫模块、组件、子系统等等)你需要说明。
2024-09-23 10:22:10
1558
原创 「java面试题」Spring
Spring Cloud是基于Spring Boot实现的微服务系统架构的一站式解决方案,包含一些列服务发现注册、配置中心、负载均衡、网关、数据监控等组件,可以帮助我们快速搭建一套微服务系统。
2024-03-05 14:45:41
643
原创 「java面试题」mysql
如果索引关联了多列(联合索引),要遵守最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。但注意:InnoDB的行锁实现在索引上,即如果访问没有命中索引,无法使用行锁,退化为表锁。:事务操作执行时,会同时生成redo log,因为事务的数据先写入内存,再写入磁盘,当写入磁盘过程中出现数据库异常,可利用redo log 确保数据被持久化。MVCC:多版本并发控制,用于处理读写并发场景,使用无锁并发控制的策略处理读写冲突,读不阻塞写,写不阻塞读,提升事务并发处理能力。
2024-03-04 10:39:10
510
原创 「java面试题」redis
当redis的运行内存超过设置的最大内存,会使用内存淘汰策略,删除符合条件的 key,以保障redis的运行。比如直播的礼物排行榜。但针对海量数据+高并发的场景,每个节点都存储相同的内容,浪费内存,同时master写数据的压力很大。:Redis集群中的哨兵节点会监控主节点的健康状况,如果主节点故障了,哨兵会自动将某个从节点提升为主节点,这样可以保证集群中始终有可用的主节点。:Redis集群将数据分成16384个槽,每个槽分配到不同的节点上,这样每个节点只需要处理自己分配到的槽,可以有效避免数据冲突的问题。
2024-03-04 10:31:50
535
原创 「java面试题」java基础
当线程调用lock()方法,如果锁没被任何线程占用,则当前线程获取到锁,然后设置锁的拥有者为当前线程,并设置AQS的状态值为1;如果当前线程之前已获得该锁,则只把AQS的状态值加1;因wait()而导致阻塞的线程是放在阻塞队列中的,因竞争失败导致的阻塞是放在同步队列中的,notify()/notifyAll()实质上是把阻塞队列中的线程放到同步队列中去。AQS的核心思想是对于共享资源,维护一个双端队列来管理线程,队列中的线程依次获取资源,获取不到的线程进入队列等待,直到资源释放,队列中的线程依次获取资源。
2024-02-28 19:00:42
544
原创 java面试看老李(持续更新)
反射是java的一种机制,可以在运行态获取类的属性和方法,用来创建对象、调用方法、对属性进行赋值。优点:能够在运行时动态获取类的实例,提高了程序的灵活性。缺点:反射机制中包括了一些动态类型,JVM无法对反射代码进行优化,因此性能较差,对性能要求高的程序尽量少用反射。什么是序列化?序列化是指将对象写入IO流,反序列化是指从IO流中恢复对象。序列化的作用?1. 远程传输对象;2. 持久化保存对象如何实现?方式1:jackson序列化。
2023-11-01 15:40:19
958
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人