自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 业务场景系列:更新Redis中设置过期时间Key的值

1.需求分析在编写一个插入数据的接口,这个接口是对接前端的的,前端的功能大致就是用户浏览和留言,因为这个页面是无登录的,只要是使用者都可以提交这个数据,这个接口是公开的,为了避免有恶意的数据提交请求导致大量的脏数据保存,造成程序卡顿甚至宕机,对这个接口进行优化改造。2.初级构思在用户发送请求时,传过来的同时有HttpServletRequest,从这个里面可以获取用户的IP地址,利用Redis可以设置过期Key的方式,以ration加上用户IP为key,插入的value为可以提交数据的次数,然后设置过

2022-04-25 22:01:29 1880

原创 前后端分离:SpringBoot治好了我的时间内耗

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。这样的配置在前后端分离的项目中能够达到敏捷高效开发,本文围绕SpringBoot+VUe搭建前后端分离Demo项目展开,正在学习SpringBoot,Vue,前后端分离的小伙伴不要错过。

2022-10-17 23:15:31 693 1

转载 Nginx夺命连环问

本篇一共Nginx面试题37道,转载自公众号Java攀登

2022-07-02 11:35:05 202

原创 云舍综合内容分享平台

1.做这个开源项目的初衷学习java已经很久了,一直是跟着视频教程或者文档来学的,没有自己从头开始搭建一个技术栈丰富,又有内容的项目,所以就产生了这个想法,在一个技术群和一个大佬一拍即合,我打下手,以他为主,不过项目目前还属于构思阶段,开发过程遇到的问题和不错的思路会用CSDN记录下来2.技术栈废话不多说,先上初步构想的技术栈。前端: NodeJS Vue3+Element-UI Plus后端: 视图层:SpringMVC 快速启动:SpringBoot 数据层:Mybatis-Plus

2022-05-16 23:31:36 220

转载 一问三不知之Redis常见问题

1)Redis为什么使用单进程单线程方式也这么快Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。Redis快的主要原因是:完全基于内存数据结构简单,对数据操作也简单使用多路 I/O 复用模型多路 I/O 复用模型是利用select、poll、epoll可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多

2022-02-17 17:11:21 122

原创 一问三不知之log4j2漏洞简析

1.log4j2漏洞介绍1.1简介Apache Log4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。是目前最优秀的Java日志框架之一。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apa

2021-12-11 12:36:29 47700 10

原创 一问三不知之初识JVM

JVM1. JVM是什么1.1 JVM概述JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机。jvm是运行在操作系统之上的,与硬件没有任何关系。JVM全称为 Java virtual machine ,即Java虚拟机。1.2 JVM跨平台及原理Java语言的一次编译,处处运行 ,即java的平台无关性是因为java虚拟机的平台有关性,不同的操作系统或平台,java虚拟机是不一样的,就比如腾讯开源的、免费的、基于 OpenJDK 的发行版本,并且受腾讯长期支

2021-11-12 10:42:21 803

原创 Redis缓存数据常见的三种问题及解决方法

1.缓存穿透1.1 问题描述缓存穿透是在客户端/浏览器端请求一个不存在的key,这个key在redis中不存在,在数据库中也不存在数据源,每次对此key的请求从缓存获取不到,就会请求数据源。如使用一个不存在的用户id去访问用户信息,redis和数据库中都没有,多次进行请求可能会压垮数据源1.2 解决方法一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写入的,缓存不存在,出于容错考虑,查询不到的数据是不会缓存在redis当中,这将导致每次请求不存在的数据都会请求数据库,失去了缓存的意义。

2021-09-07 20:48:22 1824

原创 一问三不知之HashMap的put方法

一、获取hashHashMap在put方法中,它使用hashCode()和equals()方法。当我们通过传递key-value对调用put方法的时候,HashMap使用Key hashCode()和哈希算法来找出存储key-value对的索引。二、索引下标位置元素为空如果索引下标位置元素为空,则将key和value封装为对象,jdk1.7封装成entry对象,jdk1.8封装成node对象,插入到当前位置三、索引下标位置元素不为空1、jdk1.7版本时jdk1.7的hashmap的数据结构为数

2021-08-28 15:57:57 136

原创 一问三不知之数据库引擎Innodb是如何实现事务处理的

一问三不知之数据库引擎Innodb是如何实现事务处理的Innodb实现事务处理主要用到 Buffer Pool(缓冲器池),Log Buffer,Redo Buffer(用于事务执行),Undo Buffer(用于事务回滚)以一个update事务为例1:Innodb接收到事务处理请求后,根据条件找到该数据所在的页2:创建一个Buffer Pool,并将该页数据缓存到Buffer Pool当中3:执行sql语句,修改在Buffer Pool中的数据4:针对Update语句创建一个Redo Log对

2021-08-26 22:23:25 236

原创 Mybatis-Plus入门(一)

Mybatis-Plus入门(一)提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Mybatis-Plus入门(一)前言一、Mybatis-Plus是什么?二、环境搭建1.新建一个简单的springboot项目2.建立数据库3.修改配置文件二.简单增删改查操作1.建立user实体类和Mapper层2.插入数据操作3.修改数据4.查询数据4.1按id查询

2021-06-12 18:06:02 174

原创 Java数据结构之稀疏数组

普通二维数组与稀疏二维数组相互转换引题:一个11*11的棋盘保存棋盘里的数据,0表示没有棋子,1表示白子,2表示黑子,如何存储棋盘数据引题:一个11*11的棋盘保存棋盘里的数据,0表示没有棋子,1表示白子,2表示黑子,如何存储棋盘数据一般情况下我们会用一个普通的二维数组,这个数组的大小就变成了11*11占用的内存较大,在棋盘中没有棋子的位置占大多数,这样的位置都为默认0,其他的有棋子的位置分为白棋和黑棋也就是1或2如下:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2020-10-31 17:51:04 100

空空如也

空空如也

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

TA关注的人

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