- 博客(8)
- 收藏
- 关注
转载 Redis 穿透 击穿 雪崩
缓存穿透描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 接口层增加校验,如用户鉴权校验...
2021-11-01 16:21:23
94
转载 数据库四种隔离机制
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但
2021-11-01 16:08:00
651
转载 CSS样式表属性及定位布局
一、CSS背景属性:1、background-color 背景颜色2、background-image 背景图片 背景图片需添加路径,即url后边添图片路径3、background-repeat 背景的平铺方式,no-repeat是不平铺,repeat-x是横向平铺,repeat-y是纵向平铺。4、background-position 背景图片的位置,有left,top,right等,可以随意设置5、background-attachment 背景图片是否滚动,需要与overflow:
2021-10-27 13:58:27
178
转载 Java集合类面试题
1、常见的集合有哪些线程安全:Vector、HashTable、StringBuffer线程不安全:HashMap、TreeMap、HashSet、ArrayList、LinkedListList有序,set无序,map无序,queue消息阻塞队列。2、 Arraylist与 LinkedList 异同Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构; ArrayList 采用数组存储,
2021-10-25 15:04:43
170
转载 面向对象的三大基本特征
1、封装 封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。 面相对象的不就是使用程序处理事情时以对象为中心去分析吗,与面向过程不同,面向过程关心处理的逻辑、流程等问题,而不关心事件主体。而
2021-10-25 14:41:52
81
转载 四次挥手(必学)
四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。 由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。
2021-10-25 10:51:34
223
转载 三次握手(必学)
三次握手(重点)TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。下面来看看三次握手的流程图:三次握手***次握手:客户端将标志位SYN置为1,...
2021-10-25 10:50:27
1769
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人