自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Redis常用数据类型及其适用场景精准解读

字符串String 缓存 :数据以字符串进行存储 计数器 :点赞次数,视频播放次数 分布式共享session :存sessionId 列表List 消息队列 集合Set 标签 共同好友(交集) 哈希Hash 记录博客中博主的主页访问量、昵称、联系方式等 有序集合ZSet 排行榜 bitmap 快速排序、快速去重、快速查询 hyperloglog 海量数据的基数统计功能 geospatial 计算俩地之间

2022-01-07 15:52:35 504

原创 GET请求和POST请求的区别精准解读

1)请求参数长度限制:GET有 POST无2)GET请求采用参数拼接的方式,POST请求放在Request Body中所以POST请求比GET请求更安全3)GET请求会被浏览器缓存 ,POST请求不会(除非手动设置)4)GET请求一次产生一个TCP数据包,POST请求产生俩个TCP数据包其它HTTP请求PUT:传输文件。 HEAD:获得报文首部。和GET请求一样,只是不返回报文主体部分。DELETE:删除文件。同样不带验证机制,存在安全性问题。OPTIONS:询问指定

2022-01-06 20:54:33 903

原创 Cookie、Session、Token精准解读

Cookie发送HTTP请求时,它的Herder中可以携带Cookie,记录用户的登录状态和行为,单请求有效。Session存在于服务器端,一次会话,会生成一个SessionId放置于Cookie中,存在于客户端浏览器Token客户端第一次访问服务器时,服务器会生成一串Token字符串当作之后访问的身份认证...

2022-01-05 11:01:32 281

原创 一次URL的完整过程精准解读

在浏览器输入URL1.看浏览器缓存有没有2.发送域检请求3.DNS解析URL得到IP地址5.进行IP寻址 ARR协议MAC寻址6.三次握手建立连接7.发送HTTP请求8.服务器接受解析请求9.服务器发送响应10.四次挥手关闭TCP连接11.检查状态码12.解析响应内容13.呈现界面...

2022-01-05 10:22:07 1583

原创 七层网络模型精准解读

物理层屏蔽物理媒介差异,为数据链路层提供统一的物理比特流传输能力例:光纤,网线。数据链路层将不可考的物理通信变成无差错的,能可靠传输帧的数据链路例:网卡,以太网,交换机。点对点协议 以太网协议网络层ip寻址,路由转发。IP 协议ICMP 网络消息管理协议IGMP 网络组管理协议传输层传输数据报TCP、UDP协议会话层会话、全双工、半双工表示层数据编码格式、压缩、加密应用层应用程序HTTP 超文本传输SMTP 邮件传输

2022-01-04 23:06:47 856

原创 HTTP、HTTPS、TCP、UDP精准解读

HTTP协议HTTP协议是一种用于Web浏览器和服务器之间的超文本传输协议,无状态,明文传输,默认在TCP协议80端口。HTTPS协议HTTPS协议使用HTTP来通信经过SSL/TLS加密,更耗费资源响应速度也更慢,是一种加密协议,用于对网站服务器的身份认证,保护数据隐私和完整性。默认在TCP协议的443端口 需要用到CA证书。三次握手第一次握手:客户端向服务器发送syn包第二次握手:服务器确认syn 包向客户端发送ack包和syn包第三次握手:客户端确认ack包和s

2022-01-04 22:33:53 1007

原创 Redis回收策略精准精准解读

回收策略noeviction返回错误allkeys-lru回收最少使用的keyvolatile-lru在过期key中回收最少使用的keyallkeys-random随机回收keyvolatile-random随机回收过期keyvolatile-ttl回收过期key中存活时间较短的key回收进程1)Redis客户端运行命令,添加数据2)发现大于maxmemory限制 根据策略进行回收...

2022-01-02 16:50:14 678

原创 Redis为什么这么快?精准解读

单线程避免了上下文切换的资源消耗和线程之间的竞争消耗和锁的开支以及死锁导致的性能消耗纯内存操作避免了大量访问数据库读取磁盘I/O多路复用单线程处理多个连接请求,减少网络 IO 的时间消耗;空闲时阻塞,依次顺序的处理就绪的流,避免了大量无用操作;数据结构不同场景使用对应的数据结构,减少内存使用和网络开支...

2021-12-31 16:07:59 587

原创 Redis缓存穿透、击穿、雪崩和解决方案

缓存穿透缓存和数据库都没有命中数据库解决方案:1)把空对象缓存起来2)布隆过滤器 拦截一定不存在的key缓存击穿数据在某个时刻批量过期,大部分请求直接落到数据库解决方案:1)热点数据可以设置不过期2)批量入库数据,设置合理的过期时间3)访问数据的时候,更新过期时间缓存雪崩缓存大面积过期或者系统出现故障导致请求直接落到数据库解决方案:1)搭建高可用的Redis集群和哨兵2)限流降级:加锁或者使用队列3)数据预热 并且设置不同的过期时间...

2021-12-31 15:40:26 362

原创 Redis过期策略精准解读

Redis过期策略redis的keys有俩种过期策略:被动和主动。过期时间如果没有设置过期时间,正常情况下,key一直存在,除非使用命令显示删除,例如DEL。EXPIRE指定过期时间,如果过期的key执行EXPIRE操作也会更新过期时间。过期时间和计算机时间有关,误差在0-1毫秒之间,保持计算机时间的精准。被动过期当客户端访问redis的时候,key会被发现有没有过期。主动过期有些key一直不被访问,Redis每秒10次做的事情 : 测试随机的20个keys进行相关

2021-12-29 15:31:13 295

原创 RDB和AOF持久化策略精准解读

Redis持久化策略redis提高俩种持久化策略:RDB和AOF。开启俩种持久化方式的话,redis重启的时候会优先采用AOF文件来恢复数据,因为AOF文件比RDB文件保存的数据更完整。RDB持久化策略通过制定的时间间隔生成快照对数据进行存储,Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作: Redis 调用forks. 同时拥有父进程和子进程。 子进程将数据集写入到一个临时 RD

2021-12-29 13:01:58 351

原创 AES实现加密解密

已经封装好了AES的工具类,直接复制就可以啦 @Slf4jpublic class AES { //密码 自行设置 public static String key = "sdjaodjasada"; //偏移量iv 自行设置 public static String ivKey = "sdaasljsada"; /** * AES加密 * * @pa

2021-11-18 21:48:03 270

原创 SpringBoot实现热部署

第一步:引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>第

2021-11-17 21:21:51 357

原创 JVM学习心得整理一篇帮你应付各大厂面试

以下内容是在看了儒猿技术窝的《从零开始成为JVM实战高手》、周志明 的《深入理解JVM虚拟机》第三版、官网文档《内存管理白皮书》以及其它渠道上对JVM知识的学习整理出来的一些知识点,如有错误或者不足之处,希望大家能够多多指出,共同进步!内存模型JDK1.6线程共享:堆堆分为新生代空间和老年代空间*方法区 **用于存储被虚拟机加载的类信息,静态变量,即使编译器编译后的代码等数据,也叫永久代运行时常量池存储一些常量信息线程私有:虚拟机栈:在执行一个方法的时候,会创.

2021-11-15 21:52:54 313

原创 MySQL索引(一)为什么使用b+tree

MySQL官网对于索引的定义:索引是帮助MySQL高效获取数据的数据结构!MySQL的使用主要就包括增删改查,要想实现这些,我们首先就要定位到数据,因此搜索算法是很必要优化的,常见的搜索算法如顺序搜索O(n),这肯定不在考虑范围之内,二分查找O (log(n)) ,...

2021-10-14 13:48:07 191

原创 ArrayList源码解读---transient关键字与序列化

今天带大家来看一下ArrayList源码public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable我们可以看到ArrayList继承了AbstractList这个抽象类,同时也继承了List<E>, RandomAccess, Cloneable, java.io.

2021-10-12 19:20:28 410

原创 Linux上cent os7忘记root密码了一招教你解决!

步骤一重启虚拟机 并在重启界面按下e将会进入如下界面步骤二按向下的箭头符号 找到 linux 16 在末尾加上 init=/bin/sh 然后按下ctrl+x 组合键进入单用户模式注意 init 与前面的UTF-8是用空格的步骤三输入 mount -o remount,rw /输入 passwd注意:mount和-o ,rw 和 /之间是有空格的步骤四修改root密码输入一个不小于八位数的密码然后在重复输入密码如果俩次密码无误就会返回...

2021-10-09 01:59:30 796

原创 MVCC深入理解看这一篇就够了

在深入挖卷MVCC的实现过程之前,我们先了解一下SqL中定义的事物隔离级别 RU 未提交读 RC 已提交读 RR 不可重复读 SERIALIZABLE 串行 MVCC 多版本并发控制链多版本控制指的是一种提高并发的技术,它指的是一条数据有多个版本,每次修改这个数据都会存储这条记录被修改前的版本,多版本之间串行存储在undolog中,用来实现RC,RR。一行数据除了存储真实部分之外,它还会有隐藏部分,隐藏部分包括三个字段 A 6-byte trx_..

2021-10-07 19:01:46 266

原创 MySQL数据库为什么不推荐使用外键约束?

阿里巴巴的Java开发手册中有这样一句话:不得使用外键与级联,一切外键概念必须在应用层解决!以student和grade的关系为例 ,student中的student_id是主键,成绩表中的student_id则为外键 !先了解一下什么叫级联更新和级联删除!当在student表中要删除或者更新student_id=20的相关信息,马上在grade表中中查找是否有student_id=20这个记录,然后进行删除或更新,这就叫级联。外...

2021-10-05 01:17:33 2179

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除