2025年3月25日面试总结

1.encache和redis的区别?
        (1)ehcache是存储在Jvm内部运行的,用来存放单个应用的缓存需求;
                redis则是一个单独的服务,通过网络进行服务。
        (2)ehcache是将数据存储在内存中,也支持持久化,但是持久化不是其核心功能:
                redis也是将数据存储在内存中,但是他也支持将数据持久化保存到磁盘中,可以用于数据恢复或者重启保留数据。
        (3)ehcache主要通过键值对来存储数据
                redis则是提供了好几种数据存储的方式
        (4)ehcache直接在JVM内运行,所以访问速度非常快,适用于需要极高读写速度的场景
                redis依靠其高效的设计,依然能提供非常高的读写性能,并且适合跨应用的数据共享
        (5)ehcacahe:更适合单机或单应用内的缓存需求,特别是当缓存内容较小且不需要跨应用共享时
                redis:适用于需要高性能、可扩展性以及跨应用共享的缓存场景

       
2.使用联合索引,只查询a和c,会走索引吗
        在使用联合索引(a, b, c)的情况下,如果你的查询条件只包含a和c(即忽略b),根据最左前缀原则,查询条件中必须包含联合索引的第一个字段(在这个例子中是a)才能利用到该索引。因此,如果查询条件中包含a字段,即使没有b字段而直接使用c字段,MySQL还是有可能使用这个联合索引来加速查询。

3.jdk1.8之后为什么采用红黑树数据结构?
        (1)红黑树作为一种自平衡二叉搜索树,在最坏情况下能够保证O(log n)的时间复杂度进行查找、插入和删除操作
        (2)红黑树的实现复杂度较高但可控
        (3)红黑树在内存占用方面更加高效
        

4.mysql的索引通常使用B+树,B+树是一种平衡的多路查找数据结构,能够保证对树的插入查找和删除操作。所欲的数据都存在叶子节点上,内部节点只存放键值以及指向下一个节点的指针,我们只需要找到起始点,沿着叶子节点遍历即可。

5.jvm的内存模型(栈,堆,方法区)中都存储一些什么?
        栈存储局部变量,计算过程中的中间结果,方法返回地址
        堆一边拿用于存放对象实例对象实例和数组
        方法区一般存放的是运行时常量,访问修饰符,类名,方法名以及静态变量,方法的引用

6.如果本地mysql的数据没有通过mq监听同步到es,导致mysql和es之间的数据不一致,怎么处理?
        全量同步,增量同步(cannal),使用Logstach的同步工具,幂等性设计
        
        


        

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值