- 博客(19)
- 收藏
- 关注
原创 Redis学习
最近的整个笔记都比较单一,没有深入的思考,一方面是我在准备面试,都是查漏补缺没有那么多时间去思考,另一方面是最近有些焦虑。集群的话 是有利于横向扩展redis,把数据分表存储在多个节点上,Redis 集群通过一致性哈希算法将数据分配到不同的节点上,并支持自动数据重分布、故障转移和节点扩容等功能。3.allkeys-lfu: 从所有 key 中使用 LFU 算法进行淘汰(LFU 算法:最不常用算法,根据使用频率计算,4.0 版本新增);主从是一个主节点,多个从节点,主节点失效需要手动转移新的节点为主节点。
2024-03-04 14:55:02
326
1
原创 数据库相关
索引用的是B+树,数的高度代表了查询的io次数。B+树的非叶子结点只存储索引,叶子结点存储数据,叶子结点还是双向链表,特别适合范围查找等等。比较常用的就是mysql,免费开源, pgsql 免费 ,Oracle 收费 银行用的多,存储支持的多,高斯DB 国产数据库,kingbase 登登。3.小表驱动大表,关联查询的话,先查数据集小的,再去关联数据大的。3.索引列上有计算,或者使用了函数,查询字段使用了is null。在大量查询的时候,应该少索引。1.避免select * ,一是索引会失效,二是会有。
2024-02-29 13:45:56
310
原创 SpringSecurity学习
··//获取当前用户的权限//判断用户权限集合中是否存在authority···SpringSecurity实现原理是由一个一个的过滤器实现的。
2024-02-28 15:04:47
309
1
原创 记录JVM调优实战
我总结一次OOM异常处理情况,附一个OOM demo。对于OOM情况,设置这这个参数-Xmx8m -Xms8m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:tmp 可以本地跑出来Dump文件,用工具去分析,会得到一个内存占用,类似下图:这个图会详细的描述所有的内存占用,主要关注内存最大的块。
2024-02-21 15:36:14
818
原创 自动装配的原理
1.自动装配是由EnableAutoConfiguration实现的2.EnableAutoConfiguration底下有两个实现一个是@AutoConfigurationPackage 这个类将当前spring工程的bean加载到容器中。
2024-02-18 15:35:20
410
原创 HashMap和ConcurrentHashMap
在扩容过程中,ConcurrentHashMap 需要创建一个更大的数组,并将原有的键值对重新分配到新的数组中。通过使用分段锁、CAS 操作以及合理的并发控制机制,ConcurrentHashMap 在初始化、新增和扩容过程中能够保证线程安全,从而支持高效的并发访问。这个过程并不涉及并发操作,因此是线程安全的。在扩容过程中,ConcurrentHashMap 会对每个 Segment 加锁,确保在扩容的同时,其他线程仍然可以并发地进行读操作。创建一个新的数组,并且将原有的数组中的数据重新散列到新的数组中。
2024-01-30 14:51:09
406
1
原创 多线程的使用
目前在项目中多线程已经不再神秘了,是经常使用的一种方式,而且在面试的时候也会特别问起来这部分内容。整体上线程这块也就多线程来减少时间,将串行的变为并发的,@,我们常说的高并发,那是否线程越多效率越快呢,无论什么我都设置一个100个线程加快速度,这个是不一定的。在java中,我们只是提醒操作系统这个线程即将开始,或者结束,而线程的执行是由操作系统来控制的。
2024-01-26 16:33:27
285
1
原创 Rabbitmq的使用
mq作为常用的中间件,是被频繁使用的。根据技术选型有kafka,rabbitmq等等,如何进行技术选型是要根据实际情况来讲,可以参考。当前我们仅说rabbitmq。Rabbit应用在金融行业比较多,是因为它的可靠性比较好。
2024-01-16 12:19:06
1687
1
原创 java中的异常
··// 捕获自定义异常 MyNullpointException// 可以根据需要进行异常处理逻辑// 捕获其他未处理的异常// 可以根据需要进行异常处理逻辑···
2024-01-11 15:38:10
1921
原创 事务的特性
事务是指一系列操作被当做一个单独的工作单元来执行,要么全部失败,要么全部成功要么全部回滚到原始状态,可以确保数据的一致性,完整性和可靠性。具备四个特性:(ACID)举个例子一个事务包含两个操作,a=1,b=2 a++ b++原子性(Atomicity):,要确保事务的完整进行,就需要保证a++和b++这两个操作同时完成,或者同时失败回退。这两个操作也就是最低单元不可再分了,这个就叫做原子性;
2024-01-11 11:27:01
908
原创 Spring中的ioc和aop
java是一个面向对象编程,我们所有的开发都是在处理各种对象,而对象直接的依赖关系错综复杂,所有的对象使用之前都需要new实例化的,而现实开发中其实我们很少去new实例,原因就是spring通过ioc和di机制,实现了对象的自动依赖,我们直接使用就可以。问题是这么多年了,同样的问题,是否有更多的理解和感触,是否能把这个问题回答的更清晰。当初你走过的路,你爱过的人,你经历过的事,都会藏在你的气质里, 而对于面试包含你对整个技术的理解,傻傻的背着面试题只会让你的面试通过率更低。有伪代码讲解 我就不贴代码了。
2024-01-09 13:30:06
1597
原创 SpringBoot中的starter
我最近在面试中频繁会遇到这个问题,我自己回答的很不好,所以希望以此来记录一下,我的回答基本上遵循这样一个思路,这是一个什么东西,是什么背景,解决了什么问题,是如何实现的,再附加相关的面试题。总的来说不是什么技术大牛,但都是自己总结的。
2024-01-04 16:09:44
502
原创 对于项目的困惑
第三个问题整体的效率优化我们就是加了缓存,对于一些计算比较大的数据先查缓存有没有,再就是优化数据库的表,一个是对于数据量大的表我们使用中间件进行分表操作,把一个一千万的数据分为三个几百万的,优化查询性能,优化索引。2.介绍遇到的问题:我们遇到的问题有三个:第一个是几百万将近千万级别的csv导入入库会非常慢,几百万的数据入库偶现卡死,第二个问题是百万级别的数据我们做处理的时候遇到OOM问题,第三个就是整体的效率优化。,最后采用生产消费者线程,多个生产者多个消费者维护一个查询的对象的数据在合理的范围内就可以。
2024-01-02 12:09:26
482
1
原创 什么是云原生?
最近失业找工作迷茫期,在外包呆了好几年,现在想跳出外包找一个有自己产品的公司有前景的,不好面,总结一下自己的经历,还有一些技术。最近有一个项目是基于云原生的项目,做的是基于华为云的多租户的SAAS系统,公司提供平台,租户进入做各种定制化的业务。但是我对于这个云原生一直搞不清楚,以前部署是是物理机,虚拟机,然后上云,后来的云计算,云原生,对于这个展开学习。关于谷歌对于云原生的描述:云原生技术帮助公司和机构在公有云,私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。
2023-12-28 16:19:33
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人