- 博客(26)
- 收藏
- 关注
原创 带你完虐面试官-mybatis篇
一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session进行flush或close之后,该Session中的所有Cache就将清空,默认打开一级缓存。上面有两个表,一个是用户表,一个是订单表,是一对多的关系,也就是一个用户表对应多个订单表。查询用户的时候,暂时不查询订单数据,当需要订单的时候,再查询订单,这个就是延迟加载。查询用户的时候,把用户所属的订单数据也查询出来,这个就是立即加载。MyBatis支持延迟加载,但默认没有开启。
2024-05-30 00:23:25
482
原创 带你完虐面试官-Spring常见面试题
AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。因为一般在Spring的bean的中都是注入无状态的对象,没有线程安全问题,但如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决。原因:事务通知只有捉到了目标抛出的异常,才能进行后续的回滚处理,如果目标自己处理掉异常,事务通知无法知悉。
2024-05-20 22:59:11
702
原创 Go语言学习-day02
先来看看我们之前运行的Hello World范例这几乎是最短的Golang语言程序,但麻雀虽小,五脏俱全,它包括一下几个部分。
2024-05-16 15:54:48
874
1
原创 一文看懂设计模式-建造者模式(builder Pattern)
1、意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示2、主要解决:主要解决在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;
2024-05-14 14:15:52
700
原创 RabbitMQ常用命令
channelinfoitem有:consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked。在当前集群中加入某节点:rabbitmqctl join_cluster{rabbit_node_name}(某些低版本可以采用rabbitmqctl cluster{rabbit_node_name})
2024-05-14 11:03:17
979
1
原创 RabbitMQ基础概念详解
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
2024-05-13 17:05:49
863
原创 RedisTemplate操作Redis详解之连接Redis及自定义序列化
大多数用户可能会使用RedisTemplate及其相应的软件包org.springframework.data.redis.core。实际上,由于模版具有丰富的功能集,因此它是Redis模块的中心类。该模板为Redis交互提供了高级抽象,虽然RedisConnection提供了接受和返回二进制值(byte数组)的低级方法,但是模板负责序列化和连接管理,使用户无需处理此类细节。界面描述按键类型操作Redis的地理空间操作的,比如GEOADD,GEORADIUS...Redis哈希操作。
2024-05-13 14:22:51
852
原创 带你完虐面试官之MySQL主从同步和分库分表
二进制日志(BINLOG)记录了所有的DDl(数据定义语言)语句和DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。1、前提,项目业务数据逐渐增多,或业务发展比较迅速(单表的数据量达1000W或20G以后)2.从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay Log。3、IO瓶颈(磁盘IO、网络IO)、CPU瓶颈(聚合查询、连接数太多)将一个表的数据,拆分到多个表中(可以在同一个库中)。1、按业务对数据分级管理、维护、监控、扩展。将不同表拆分到不同库中。
2024-05-12 20:52:16
265
原创 带你完虐面试官之MySQL事务
事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。不同事务或相同事务对同一条记录进行修改,会导致该记录的undolog生成一条记录版本链表,链表的头部是最新的旧记录,链表尾部是最早的旧记录。简单的select(不加)就是快照读,快照读,读取的是记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞读。重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。
2024-05-12 19:19:36
492
原创 带你完虐面试官之MySQL优化
索引是帮助MySQL高效获取数据的数据结构提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗什么是聚簇索引,什么是非聚簇索引?聚簇索引(聚集索引):数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个非聚簇索引(二级索引):数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个什么是回表查询?通过二级索引找到对应的主键值,到聚集索引中查找整行数据,这个过程就是回表。
2024-05-11 23:43:30
947
1
原创 SpringBoot集成Redis环境搭建及配置详解
Redis作为当前最火的NoSQL数据库,支持很多语言客户端操作Redis。而SpringBoot作为java当前最火的开发框架,提供了Spring-data-redis框架实现对Redis的各种操作。在springboot1.5.x版本的默认的Redis客户端都是Jedis实现的,springboot 2.x版本中默认的客户端是用lettuce实现的。
2024-05-11 17:12:48
2579
1
原创 一文读懂设计模式-单例模式
1、意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点2、主要解决:一个全局使用的类频繁地创建与销毁3、何时使用:当你想控制实例数目,节省系统资源的时候4、如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建5、关键代码:构造函数是私有的6、应用实例:1)、一个党只能有一个主席2)、Windows是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。
2024-05-11 15:51:31
710
1
原创 Redis6新特性
不过需要注意的是代理不改变 Cluster 的功能限制,不支持的命令还是不会支持,比如跨 slot 的多Key操作。在Redis 5版本之前,Redis 安全规则只有密码控制 还有通过rename来调整高危命令,比如flushdb,keys*,shutdown等。Redis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。注意:未使用nopass进行标记且没有有效密码列表的使用实际上是无法使用的,因为将无法以该用户身份登录。
2024-05-11 11:45:05
1012
1
原创 Redis集群搭建
主从复制和哨兵模式一定程度上能解决高可用问题,但是也存在问题,比如容量不够,redis如何进行扩容?并发写操作,redis如何分摊?redis3.0中提供了解决方案,就是无中心化集群配置。集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用,可以归纳以下几点:1、
2024-05-11 10:56:54
915
1
原创 Redis之哨兵模式(sentinel)详解
Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化,哨兵基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提供系统的高可用性。
2024-05-10 17:50:42
1025
原创 Redis之主从复制详解
(2)监测命令丢失:从节点发送了自身的offset,主节点会与自己的offset对比,如果从节点数据缺失(如网络丢包),主节点会推送缺失的数据(这里也会利用复制积压缓冲区)。需要注意的时,命令传播是异步的过程,即主节点发送写命令后并不会等待从节点的回复;一般用于初次复制场景,不管是新旧版本的redis在从服务器第一次与主服务连接时都将进行一次全量复制,它会把主节点的全部数据一次性发给从节点,当数据量较大时,会对主节点和网络造成很大的开销,redis的早期版本只支持全量复制,这不是一种高效的数据复制方式。
2024-05-09 21:20:36
903
1
原创 SpringSecurity安全管理框架-(一)初识SpringSecurity
Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富;Spring Security是一个的框架。它是用于保护基于Spring的应用程序的实际标准;Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,SpringSecurity的真正强大之处在于可以轻松扩展以满足自定义要求。
2024-05-08 10:30:00
747
1
原创 一文读懂设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern) 是围绕一个超级工厂创建其他工厂该超级工厂又称为其他工厂的工厂在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类每个生成的工厂都能按照工厂模式提供对象抽象工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。1、意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类2、主要解决:主要解决接口选择的问题3、何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品4、如何解决:在一个产品族里面
2024-05-07 15:11:53
978
原创 Redis事务详解
MULTI执行之后,客户端可以继续向服务器发送任意多条命令,这些命令不会立即被执行,而是被放到一个队列中,当EXEC命令被调用时,所有队列中的命令才会被执行。当客户端处于事务状态时,所有传入的命令都会返回一个内容为QUEUED的状态回复(status reply),这些被入队的命令将在EXEC命令被调用时执行。至于那些在EXEC命令执行之后所产生的错误,并没有对它们进行特别处理:即使事务中有某个/某些命令在执行时产生了错误,事务中的其他命令仍然会继续执行。其中,回复元素的先后顺序和命令发送的先后顺序一致。
2024-05-07 12:01:07
905
原创 Redis发布订阅及SpringBoot集成Redis实现发布订阅消息
Redis发布订阅提供了简单的消息队列功能,但实际应用较少,因为其模式单一、消息丢失性高,但其简单易用,常用于日志等不重要的数据传输。
2024-04-30 15:26:44
524
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人