![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
PDDdevelop
无处安放的大脑
展开
-
什么是脏读、幻读、不可重复读、可重复读
脏读:当前事务读取到了其它事务未提交的数据。不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。...原创 2021-03-05 17:26:16 · 2966 阅读 · 0 评论 -
关于缓存穿透、缓存击穿、缓存雪崩
1、缓存穿透一、概念缓存穿透:缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到数据库,从而压垮数据库。如下图红色的流程:比如客户查询一个根本不存在的东西,首先从Redis中查不到,然后会去数据库中查询,数据库中也查询不到,那么就不会将数据放入到缓存中,后面如果还有类似源源不断的请求,最后都会压到数据库来处理,从而给数据库造成巨大的压力。二、解决办法①、业务层校验用户发过来的请求,根据请求参数进行校验,对于明显错误的参数,直接拦截返回。比如,请求参数为主键自增id原创 2021-03-04 16:44:51 · 137 阅读 · 1 评论 -
mybatis面试题
mybatis常见面试题1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。称Mybatis是半自动ORM映射工具,是因为在查询关原创 2021-03-04 16:29:48 · 235 阅读 · 1 评论 -
Spring AOP 和IOC是什么,分别的使用场景
Spring AOP 和IOC是什么,分别的使用场景AOP:面向切面编程。即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说帮我也取一下呗,你就顺道取了。在工作中如果系统中有些包和类中没有使用AOP,例如日志,事务和异常处理,那么就必须在每个类和方法中去实现它们。 代码纠缠每个类和方法中都包含日志,事务以及异常处理甚至是业务逻辑。在一个这样的方法中,很难分清代码中实际做的是什么处理。AOP 所做的就是将所有散落各处的事务代码集中到一个事务切面中。场景比方说我现在要弄一个日志,记录某原创 2021-03-04 16:10:30 · 6815 阅读 · 3 评论 -
redis是否为单线程和高性能
redis是否为单线程和高性能Redis的单线程和高性能Redis是单线程吗?Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redi原创 2021-03-04 16:01:42 · 109 阅读 · 1 评论