妙博客

主机评测 香港服务器 洛杉矶VPS测评

redis怎么保证和mysql数据一致

方案一:基本思路:在写库前后都进行redis.del(key)操作1、先删除缓存2、再写数据库4、延迟一段时间再次删除缓存方案二:先更新数据库,再删除缓存。并配合消息队列来重试缓存的删除,或者用阿里 Canal 中间件订阅 MySQL binlog 删除缓存。

Spring MVC工作流程?

Spring MVC是一种基于(Model-View-Controller)模式的Web框架,它的工作流程主要包括以下几个步骤:  1.首先前端管理器DispatcherServlet接收到用户请求,将请求转发给对应的处理器映射HandlerMapping。 2.HandlerMapping根据URL调用对应的处理器适配类HandlerAdaptor从而找到具体的Controller。 3.Controller层接受到用户参数后,会把请求参数传递给Controller里面的方法。Con

linux设置时区为中国时区

timedatectl set-timezone Asia/Shanghai如果时间也错了,可以设置一下时间date -s "2022-01-01 12:00:00"

java线程同步的理解synchronized和Lock

1.synchronized是关键字,Lock是接口;2.synchronized是隐式的加锁,lock是显式的加锁;synchronized在退出代码块时自动解锁,lock却必须调用unlock方法进行手动释放3.synchronized可以作用于方法上,lock只能作用于方法块;4.synchronized底层采用的是objectMonitor,lock采用的AQS;5.synchronized是阻塞式加锁,lock是非阻塞式加锁支持可中断式加锁,支持超时时间的加锁;6.synchroniz

谈谈java中对JVM的理解

JVM也叫java虚拟机,特点是它的跨平台性,Java语言使用Java虚拟机屏蔽了与具体平台相关的信息。Java虚拟机在运行Java程序时,会管理着一块内存区域,JVM内存模型可分为五个部分:堆区、方法区、虚拟机栈、本地方法栈、程序计数器1.堆:该内存区域是jvm虚拟机管理的内存中最大的一块内存,它存放了对象实例及数组2.方法区:是各个线程共享的内存区域,用于已被虚拟机加载的类型信息、常量、静态变量、编译器代码缓存等3.虚拟机栈:它保存方法的局部变量、方法返回地址和一些额外的附加信息4.本地方法

Spring启动流程

1.加载Spring会扫描应用程序上下文中的所有类和配置文件,并通过Java的反射机制来加载它们。2.实例化在加载完成之后,Spring会将所有Bean实例化,并将它们放入Bean容器中,这个容器会负责管理这些Bean的生命周期和依赖关系。在实例化过程中,Spring会使用Java的反射机制来创建Bean的实例,并自动注入它们所需要的依赖关系。3.初始化Spring会调用所有Bean的初始化方法,这些方法可以在Bean的定义中通过init-method属性来指定4.后置处理后置处理可以在Bean

SpringBoot启动流程

一、大致流程1.加载启动类启动类是使用了@SpringBootApplication注解标注的类,该注解包含了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的功能。SpringBoot通过扫描启动类所在的包及子包,自动配置相应的Bean2.加载配置文件SpringBoot程序默认从applicaiton.properties或application.yml中加载配置,也可以通过在启动类上标注@Propert

B树和B+树的区别(mysql)

1.B树 英文名是Balance Tree, 全名是多路平衡搜索树。2.B+树是B树的升级版,相对于B树有以下特点:1.所有关键字都会在在叶子节点出现,2.非叶子节点不存储数据,数据只在叶子节点存储3.所有叶子结点构成了一个双向循环链表,而且所有的叶子节点按照顺序排列。3.B+树对比B树的优势:因为B+树非叶子节点只存储key,不存储数据。所以B+树每层能存储更多的结点,且层高会更矮,能大大减少磁盘IO次数B+树的叶子结点是双向循环链表,进行范围查询时不需要遍历整颗树,能更加高效的获取数据。

Sql性能调优的方案

一、选择合理的字段类型1.固定长度用char,变长采用varchar2.能用数字类型就不用字符串二、select查询时需要什么数据就查哪些字段,尽量不使用select *1.需要哪些数据就查数据,否则会增加网络IO传输耗时。2.select *不会走覆盖索引,会出现大量的回表查询,而从导致查询sql的性能很低。三、进行where比较时,尽量用索引进行比较,否则会全表扫描四、当使用union和union all的情形,如果查询结果不需要去重,尽量使用union all,减少排除重复数据的耗时五、合

nginx防止日志过大,按天滚动日志

nginx防止日志过大,按天滚动日志
log_format access-upstream '$time_iso8601|$request|$remote_addr|$upstream_response_time|$http_user_agent|$http_x_forwarded_for';     map $time_iso8601 $logdate {     '~^(?

Copyright Your 142132.com Rights Reserved. 赣ICP备17010829号-2