分库分表

2023-09-25
阅读 1 分钟
861
(1)垂直分表&nbsp&nbsp&nbsp&nbsp表中的字段较多,一般将不常用的、 数据较大、长度较长的拆分到“扩展表“。一般情况加表的字段可能有几百列,此时是按照字段进行数竖直切。注意垂直分是列多的情况。

redis缓存击穿

2023-09-21
阅读 1 分钟
818
缓存击穿是指在使用缓存的系统中,当某个热门的数据过期(或被移除),而此时有大量的请求同时访问该数据,导致这些请求都需要去数据库或其他数据源中重新获取数据,从而导致数据库负载剧增,系统性能下降。Redis缓存击穿是指这种问题发生在Redis缓存中。

线程池面试题

2023-09-20
阅读 2 分钟
960
如果我们合理的使用线程池,则可以避免把系统搞崩的窘境。总得来说,使用线程池可以带来以下几个好处:1、降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、增加线程的可管理型。线程是稀缺资源,使用线程池可以进行...

线程安全的集合面试题

2023-09-17
阅读 1 分钟
380
1、Hashtable和HashMap有什么区别HashMap是线程不安全的(多线程环境下会出问题);Hashtable是线程安全的(但效率低下);Hashtable底层和哈希表一样,扩容因子是0.75,扩容倍率是2倍。Hashtable一次只能执行一个线程(全表加锁),采取悲观锁(增善改的方法上都加了synchronized)保证了线程安全。

elasticsearch建立索引库

2023-09-15
阅读 5 分钟
308
1、导入依赖 {代码...} 修改elasticsearch版本 {代码...} 2、使用elasticsearch(1)配置类初始化RestHighLevelClient {代码...} (2)常量类 {代码...} (3)测试类 {代码...}

RabbitMq中间件使用

2023-09-14
阅读 6 分钟
365
1rabbit介绍(1)linux获取已经下载好的rabbit镜像tar包 {代码...} (2)启动容器,5672:MQ的通信端口,15672:管控台的端口 {代码...} (3)结构与角色2、rabbit入门介绍:rabbitmq的五种模式(1)Simple简单模式:一个生产者,一个消费者,没有交换机导入依赖 {代码...} 配置文件: {代码...} (2)WorkQueue:一个生产者,多个消...

nacus配置

2023-09-11
阅读 1 分钟
752
nacus服务注册:依赖 {代码...} yml文件 {代码...} nacus服务发现:依赖: {代码...} yml文件 {代码...}

hashmap

2023-09-10
阅读 3 分钟
813
HashMap的底层是Hash表结构,元素的排列是根据哈希算法和哈希函数排序的,且不可重复。JDK8以前,Hash表的底层是【数组】+【链表】JDK8及之后,变成了【数组】+【链表】+【红黑树】存入新键值对时,如果出现哈希冲突,会先判断键是否相同,如果键相同,会比较值,值相同则不放入,值不同则修改原值;如果键不相同,则会...

ACP

2023-09-08
阅读 1 分钟
931
ACP:在CAP理论中,C(Consistency)表示数据一致性,A(Availability)表示可用性,P(Partition Tolerance)表示分区容错性。根据CAP理论,分布式系统无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个要求,只能在其中两个方面进行权衡取舍。在AP模式中,系统优...

9-6学习总结

2023-09-06
阅读 1 分钟
687
软件架构1、单体架构:将所有的代码集中在一个项目中开发,打成一个包部署优点:架构简单,部署成本低缺点:耦合度高维护困难2分布式架构:把一个完整的系统,根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。一个完整的业务功能,可能需要多个服务进行通信才能完成。服务之间通信是需要网...

面试题-java锁,高并发,多线程-1

2023-09-05
阅读 2 分钟
921
原子性:一个或多个操作要么全部执行成功,要么全部执行失败。可见性:一个线程对共享变量的修改,另一个线程能够立刻看到(synchronized,volatile)。有序性:程序执行的顺序按照代码的先后顺序执行。(有序性不代表禁止指令重排)。

linux常用命令

2023-09-03
阅读 2 分钟
917
1、基本命令ip addr:查看ippwd:查看当前所在目录shutdown -h now:立即关机reboot:重启ping ip或域名:查看网络是否OKctrl + c:强制结束占用窗口的命令top:查看内存占用情况kill -9 pid:强制杀死指定程序,pid为进行序号ps -ef | grep -i 进程名字:查看进程运行信息,|为管道命令clear:清屏(伪命令)history:查看历史...

关系型数据库和非关系型数据库的区别

2023-09-02
阅读 1 分钟
1.8k
关系型数据库(Relational Database)和非关系型数据库(Non-Relational Database,也称NoSQL数据库)是两种不同类型的数据库管理系统。它们在数据组织方式、使用场景和特点上有所区别。

829学习总结

2023-08-29
阅读 2 分钟
471
1、xml中需要转移的字符在xml写sql有些字符需要转义,如果用下面的方式,可以不用转义也能表示原来的意思 在idea中直接打大写的CD会有补全提示2、对查询结果排序 降序排序,默认升序order by number desc3、内连接和笛卡尔积的区别笛卡尔积:selct* from tb1,tb2隐式内连接:selct* from tb1,tb2 where 判断条件4、一段...

SpringCatch

2023-08-28
阅读 1 分钟
642
在SpringCache中提供了很多缓存操作的注解,常见的是以下的几个:@EnableCaching:开启缓存注解功能,通常加在启动类上@CachePut:将方法的返回值放到缓存中@CacheEvict:将一条或多条数据从缓存中删除@Cacheable:在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将...

线程池简要解释

2023-08-27
阅读 2 分钟
999
如果我们合理的使用线程池,则可以避免把系统搞崩的窘境。总得来说,使用线程池可以带来以下几个好处:1、降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、增加线程的可管理型。线程是稀缺资源,使用线程池可以进行...

锁的四种状态

2023-08-25
阅读 1 分钟
980
synchronized底层synchronized实际没有想象中的那么"笨重"优化JDK 6中为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”。锁的四种状态锁一共有4种状态,级别从低到高依次是:无锁、偏向锁、轻量级锁和重量级锁。锁状态只能升级不能降级。无锁无锁没有对资源进行锁定,所有的线程都能访问并修改同一个...

Aop实现自动填充字段值

2023-08-23
阅读 3 分钟
895
需求:自动填充更新时间创建时间,创建用户和更新用户。自定义注解:OperationType类是一个枚举 {代码...} OperationType枚举类 {代码...} 使用aop并且声明一个事务 {代码...} }

Redis命令

2023-08-21
阅读 1 分钟
717
Redis的五种数据类型及命令(先写三种)1、StringSet key value:设定指定key的value值,如果key已经存在,则就是修改值GET key:获取指定key的值,如果没有这个key,就是nil【相当于Java的null】SETEX key seconds value:设置指定key的值,并将 key 的过期时间设为 seconds 秒TTL key:查看key剩余存活时间&nbsp&nbsp&nb...

jdk动态代理和cglib动态代理

2023-08-20
阅读 1 分钟
860
JDK 动态代理:基于接口:JDK 动态代理只能代理实现了接口的目标对象。动态生成代理类:在运行时通过反射和字节码生成技术动态生成代理类。代理类通过实现与目标对象相同的接口,并将方法的调用委托给 InvocationHandler 处理器。效率较高:JDK 动态代理由于直接操作字节码,因此在性能上比较高效。