自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入探究 Redis:快速高效的键值存储数据库(一文全面快速上手Redis)

Redis(Remote Dictionary Server)是一个开源的内存数据库,它提供了一个高效的键值存储系统,并支持多种数据结构,如字符串、列表、集合、哈希表等。由意大利程序员 Salvatore Sanfilippo 开发并于 2009 年首次发布,Redis 迅速成为业界热门的 NoSQL 数据库之一。作为一款功能丰富且性能出色的数据库,Redis 在许多方面都表现出色。首先,Redis 将数据存储在内存中,因此具有极快的读写速度,适合用于需要快速响应的场景;

2024-03-12 11:16:30 1293 1

原创 非常简单的阿里EasyExcel文件导入导出

监听器里面我们实现了阿里的ReadListener接口,实现了两个方法,一个是每读一行触发一次,第二个是在读取完以后触发一次,我们可以根据业务需求来进行编写。我这里只是做一个简单的示例,将读取的内容写了一个方法并返回。具体业务需要根据我们项目的实际需求,我这里只是做一个大概的演示噢。每行代码的作用我都打了注释,方便大家理解。具体代码的作用我打了注释,方便大家理解。

2023-08-29 14:19:37 351

原创 SpringSecurity使用详细讲解,附源码详细每一步的引导

权限认证的思路其实非常简单,我在登录的时候根据用户查询到权限信息,然后交给SpringSecurity框架,并且存到reids中就可以。截止到这一步,简单的登录校验就做好了,sucrity会根据返回的user自己比较密码,注意密码存储数据库时一定要加密,否则比对不成功。截至这里我们测试,登录成功之后,拿到返回的token,将token放在请求头中,成功访问,如果没有token就说明请求非法。前面我们说到了,当用户登录成功之后,我们会把生成的jwt返回给前端,然后前端在每次请求的时候都要带上这个token,

2023-08-23 17:19:45 380 2

原创 事务并发安全问题详解

1. 脏读: 就是一个事务在读取这一行数据,此时另一个事务修改了这一行数据,但是这个修改的事务还没有提交,那么就会造成正在读的这个事务读取到的数据是脏数据,更可怕的就是如果第一个事务此时把这个数据修改了,那么就会发生错误,因为此时修改的数据就是个脏数据。4.二类更新丢失问题:当多个事务并发的操作同一个数据,那么会有多个事务进行操作,但是最终只有一个事务提交成功,其他事务失败被回滚,这种情况下,可能会导致其他事务对数据做出的修改被回滚从而数据被丢失了,因为数据库只会保留事务成功提交所做出的更改。

2023-04-17 14:50:35 221 2

原创 深入理解mysql

的索引结构,它的b+tree 叶子节点存放的是数据,非叶子节点存放的键值.innodb的辅助索引存放的是主键索引的键值,所以查到非 主键索引的时候需要回表再次查询主索引,如果说我们查询的字段刚好在辅助索引的键值中,它就不会回表,所以这也是为什么我们在写查询sql的时候只查询需要的字段,不查询所有。3.可重复度:数据库在读的时候不会阻塞读的操作,但会阻塞写的操作,在写的时候会阻塞读和写的操作,可以解决一类丢失更新,脏读,和二类丢失更新问题,是数据库默认隔离级别。它有四大特性:原子性,一致性,隔离性和持久性。

2023-04-13 00:09:16 431 3

原创 用Docker部署Java项目

Docker是一种容器化技术,可以帮助开发者轻松打包应用程序和依赖项,并在任何地方运行它们。在本文中,我们将介绍如何使用Docker部署Java项目。

2023-03-27 17:50:19 15735 3

原创 Redis简介&高频面试点

2.RDB,数据快照的方式持久化数据,在规定的时间内,执行了多少次操作,就会持久化到文件,RDB数据是进行加密的,同步数据性能没有AOF高,在刚开始持久化的时候占用空间比AOF小,但是随着持久化数据的数量越来越多,它的体积比AOF大,但是RDB恢复数据的速度比AOF快。那么因为如果使用多线程,那么就会涉及到线程的上下文切换,是会消耗性能的,而单线程不涉及到线程的切换,而且它是基于内存的,并且使用多路复用NIO来提高I/O的读写性能,还有专门的结构设计:key:value结构,所以Redis是非常快的!

2023-03-07 00:50:46 115

原创 怎样回答数据库sql优化这个高频面试题呢

上面说的这些都是从sql方面入手来优化,那么我们还有从更大的维度来考虑,比如说在设计表的时候,一些固定长度的数据,我们直接用char固定长度,无法确定长度的我们就用varchar,还要考虑业务是否合理,以及表的字段的设计是否合理。那么如果数据量太大,我们是否要考虑分库分表。前两天刚刚面试了一家公司,面试官提到这方面的问题,经过我一系列的回答之后,面试官回复了我“很好”两个字,应该也是回答到了他的心坎上,那么接下来我就分享一下我对数据库以及sql优化的一些经验,如果有说的不对或者遗漏的地方,欢迎大佬们指教。

2023-03-06 15:05:52 582 1

原创 HashMap的底层原理

在多线程环境下,它容易造成循环添加数据,所以会有脏数据,一般在多线程环境下,我们会使用ConcurrentHashMap,CouncurrentHashMap它在jdk1.7之前使用了分段锁,这也是它比HashTable效率高的原因,它不会把整个数据都上锁,在jdk1.8之后,用了cas机制和Synchronized锁,并且它的value值和next都被volatitle修饰,保证了数据的可见性。可能有的小伙伴会问,为什么是8的时候变为红黑树,为啥又是6变为单向链表呢。那么创建数组的默认长度是16,

2023-03-05 00:59:50 251 2

空空如也

空空如也

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

TA关注的人

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