自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 mysql深入——事务原理与MVCC

中的版本链进行策略匹配,可以发现红圈圈出的版本符合策略要求,所以。事务5中查询id为30的记录返回该版本数据。,下一组查询同理进行匹配。

2022-09-28 23:47:24 416 1

原创 maven依赖导入报红的处理

刷新无用,找到右边的maven,将报红的依赖对应的模块进行reimport处理

2022-06-06 10:08:11 427

原创 Redis——实现关注与取关等功能

目录实现关注与取关实现共同关注功能关注推送Feed流的模式拉模式推模式推拉结合模式总结基于推模式实现关注推送功能Feed流的分页问题实现关注推送页面的分页查询实现关注与取关实现Controller层@RestController@RequestMapping("/follow")public class FollowController { @Resource private IFollowService follow

2022-05-28 23:11:53 1823 2

原创 操作系统——虚拟内存

目录虚拟内存的定义和特征三个主要特征如何实现虚拟内存技术总结请求分页管理方式页表机制缺页中断机构地址变换机构基本流程图​总结分页置换算法最佳置换算法​先进先出置换算法最近最久未使用置换算法时钟置换算法改进型的时钟置换算法总结页面分配与置换策略何时调入页面​从何处调入页面抖动(颠簸)现象工作集总结传统存储管理方式的特征、缺点局部性原理 虚拟内存的定义和特征三个主要特...

2022-05-27 23:01:34 349

原创 操作系统——内存管理

连续分配方式的缺点 非连续分配管理方式分页存储管理的基本概念

2022-05-23 00:38:13 530

原创 操作系统——内存

目录内存的基础知识什么是内存逻辑地址(相对地址)和物理地址(绝对地址)程序的执行过程(编译,链接,装入)装入的三种方式绝对装入静态重定位动态重定位链接的三种方式静态链接装入时动态链接运行时动态链接总结内存管理的概念需要提供的功能内存保护方法一方法二总结内存空间的扩充覆盖技术交换技术问题总结内存空间的分配单一连续分配固定分区分配​编辑动态分区分配总结动态分区分配算法...

2022-05-15 16:06:19 1211 3

原创 redis——实现点赞功能

目录完善点赞功能实现点赞排行榜功能完善点赞功能(采用redis中的set集合)实现 @Override public Result likeBlog(Long id) { //1.获取登录用户 Long userId = UserHolder.getUser().getId(); //2.判断当前用户是否点赞 String key="blog:liked"+id; Boolean is

2022-05-14 16:12:47 5553 2

原创 Redisson

前文链接:主要是要学习redis分布锁的原理,其实redis有专门用来处理这些问题的工具(1条消息) Redis——实现优惠券秒杀_486过于烦躁的博客-CSDN博客(1条消息) 基于Redis的分布式锁实现(秒杀优惠券的优化)_486过于烦躁的博客-CSDN博客Redisson可以解决以下四个问题Redisson之所以引用Redisson是因为前文我们自己实现的锁不满足可重入性(什么是 “可重入”:可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁...

2022-05-13 23:23:46 971

原创 操作系统——死锁

前言再次声明:操作系统篇章都是参考B站王道考研视频:王道计算机考研 操作系统_哔哩哔哩_bilibili采用截图学习法死锁的概念什么是死锁死锁、饥饿与死循环的区别死锁产生的必要条件四个条件:-互斥条件 -不剥夺条件 -请求和保持条件-循环等待条件什么时候会发生死锁死锁的处理策略总结死锁的处理通过破坏死锁所需的必...

2022-05-11 15:28:47 719 1

原创 基于Redis的分布式锁实现(秒杀优惠券的优化)

什么是分布式锁修改秒杀优惠券的流程分布式锁的实现基于Redis的分布式锁(非阻塞实现)ILock接口public interface ILock { /** * 尝试获取锁 * @param timeoutSec 锁持有的过期时间,过期后自动释放 * @return true代表获取锁成功,false代表获取锁失败 */ boolean trLock(long timeoutSec); /...

2022-05-07 15:25:17 939

原创 Redis——实现优惠券秒杀

全局ID生成器当数据规模达到一定量级的时候会影响到数据库的性能,那么这个时候我们一般会沿着AKF的Z轴使用分库分表的策略,以降低单表的数据量,从而提高数据库的性能。但是分库分表后,我们怎么保证ID的全局唯一性呢?这个时候ID生成器就登场了。ID应该遵循的原则1、ID应该是按时间有序的,因为在某些场景上可能会用到,比如获取商品的评论,一般需要按照评论的时间倒序显示,如果评论ID是无序的那边就需要添加额外的字段排序。另外ID如果是有序,可以提升数据库的性能,因为有序的ID,对...

2022-05-06 19:31:22 1031

转载 ThreadLocal的三种使用场景(转发)

目录场景一:场景二:场景三:慎用的场景ThreadLocal包含了四个方法:void set(Object value) 设置当前线程的线程局部变量的值。public Object get() 该方法返回当前线程所对应的线程局部变量。public void remove() 将当前线程局部变量的值删除,其目的是为了减少内存使用,加快内存回收。protected Object initialValue() 返回该线程局部变量的初始值,该方法是一个protected..

2022-05-05 15:18:26 904

原创 深入理解Maven

Maven简介Maven的作用Maven基础概念仓库坐标

2022-04-27 21:34:32 189 1

原创 Redis实战——商户查询缓存

​​​​​​​线程一查询的时候,缓存恰好失效方案二更好

2022-04-24 19:07:58 964

转载 亿级别大数的排序查找

技术思路1.容量换算1 byte = 8 bits1k = 1024 byte = 8*1024 bit1M = 1024 k = 810241024 bit = 8388608 bit 800万100M = 8亿比特1亿 = 10810^81081亿整数 = 32亿比特 = 400Mint 能存的最大数字为[−231-2^{31}−231, 231−1]2^{31}-1]231−1],即 [-2147483648, 2 147 483 647] 。正整数是 21亿个,int 总共表达的数

2022-04-18 14:20:26 1272

原创 Redis实战——实现类附近商铺功能

前言首先需要了解 Redis 中 GEO 的使用,和GeoHash算法的基本原理链接:Redis——GEO附近商户搜索将类型相同的商户分为同一组为了支持 GEOSEARCH 命令,需要更新 Redis 版本实现代码加载商铺数据(含坐标) @Test void loadShopData(){ //1.查询商户信息 List<Shop> shops = shopService.list();

2022-04-17 22:58:48 1342

转载 Redis——GEO

GEO数据结构GEOADD1.1 GEOADD概念将给定的空间元素(纬度、经度、名字)添加到指定的键里面。 这些数据会以有序集合的形式被储存在键里面, 从而使得像 GEORADIUS 和 GEORADIUSBYMEMBER 这样的命令可以在之后通过位置查询取得这些元素。GEOADD 命令以标准的 x,y 格式接受参数, 所以用户必须先输入经度, 然后再输入纬度。 GEOADD 能够记录的坐标是有限的: 非常接近两极的区域是无法被索引的。 精确的坐标限制由 EPS...

2022-04-17 22:16:29 2880

原创 操作系统——调度算法

目录调度算法的评价指标1.cpu利用率2.系统吞吐量​3.周转时间​4.等待时间5.响应时间​总结调度算法(批处理系统)1.先来先服务(FCFS)示例2.短作业优先(SJF)非抢占式​抢占式对FCFS和SJF的对比思考3.高响应比优先(HRRN)示例总结调度算法(交互系统)1.时间片轮换时间片大小为2时间片为5​注意时间片大小的设置​2.优先级调度算法非抢占式抢占式补充​思考3.多级反馈...

2022-04-11 12:47:43 2545 1

原创 操作系统——进程调度

目录调度的基本概念高级调度中级调度低级调度三层调度的联系及对比补充知识:七状态模型总结进程调度进程调度的时机进程调度的方式进程的切换与过程总结调度的基本概念高级调度中级调度低级调度三层调度的联系及对比补充知识:七状态模型总结进程调度进程调度的时机进程调度的方式进程的切换与过程总结...

2022-04-11 09:45:09 1751

转载 通俗易懂讲布隆过滤器(转载)

目录前言:缓存雪崩从一道面试题说起布隆过滤器Guava实现布隆过滤器Redis实现布隆过滤器Redisson实现带计数的布隆过滤器布隆过滤器工作位置布隆过滤器的其他应用场景前言: 哈哈,没想到昨天才看的字节青训营直播,今天就看到了直播某位大佬的文章,实在是太有缘分了作者:小杰博士链接:通俗易懂讲布隆过滤器 - 掘金 (juejin.cn)缓存雪崩缓存雪崩就是Redis的大量热点数据同时过期(失效),因为设置了相同的过期时间...

2022-04-09 22:49:25 544

原创 redis实战——实现(类)短信登录

目录前言:1.基于Session实现登录实现流程图2.基于Redis实现共享session登录实现流程图​3.登录拦截器的优化:前言:该项目的前端代码已置于nginx服务器上,只需在启动服务即可导入的依赖有: <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> ...

2022-04-08 23:24:58 1593 2

原创 Redis——Java基本使用

目录Redis的客户端介绍JedisJedis连接池Springboot下的整合SpringDataRedis1.导入依赖2.配置文件3.编写测试解决办法:方案一:自定义RedisTemplate的序列化方式方案二:采用StringRedisTemplate我的例子(对于JSON的转换,我采用了FastJson):总结:Redis的客户端介绍JedisJedis连接池Springboot下的整合...

2022-04-06 17:26:13 1698

原创 Redis的数据类型及命令

目录前言Redis数据结构介绍Redis通用命令String类型String类型的常见命令​key的结构​Hash类型Hash类型的常见命令​List类型List类型的常见命令Set类型Set类型的常见命令SortedSet类型SortedSet类型的常见命令前言参照:官方文档Redis数据结构介绍Redis通用命令String类型String类型的常见命令key...

2022-04-06 11:38:04 1014

转载 Redis Desktop Manager连接Redis的坑(转载)

1.注释redis.conf文件中的:bind 127.0.0.1修改为自己的IP2.ifconfig查看自己的虚拟机ip3.拿到IP后,返回Windows,开启cmd,通过telnet命令,测试端口是否畅通。如果连接失败,表示CentOS的6379端口没有开启4.开启端口输入firewall-cmd --query-port=6379/tcp,如果返回结果为no,那么证明6379端口确实没有开启。输入firewall-cmd --add-port=6379...

2022-04-06 11:30:08 116

原创 Linux笔记

目录前言:内容:前言: 方便跳转查询(备忘)内容:链接:笔记合集

2022-04-05 16:05:46 57

原创 Springboot拦截器的简单示例

拦截器-登录检查与静态资源放行编写一个拦截器实现HandlerInterceptor接口1.拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors())2.指定拦截规则(注意,如果是拦截所有,静态资源也会被拦截】3.编写一个实现HandlerInterceptor接口的拦截器(根据判断session中是否存入loginUser对象,来决定是否拦截)@Slf4jpublic class LoginInterceptor implements Ha

2022-03-25 16:07:30 185

转载 @RequestParam和@PathVariable

@RequestParam和@PathVariable相同点与区别@RequestParam和@PathVariable都能够完成类似的功能——因为本质上,它们都是用户的输入,只不过输入的部分不同,一个在URL路径部分,另一个在参数部分。要访问一篇博客文章,这两种URL设计都是可以的:通过@PathVariable,例如/blogs/1 通过@RequestParam,例如blogs?blogId=1那么究竟应该选择哪一种呢?建议:1、当URL指向的是某一具体业务资源(或资源列表..

2022-03-24 16:24:34 929

原创 操作系统——进程同步与互斥

2.3.1进程的同步与互斥(1)进程同步(2)进程互斥1.逻辑简要:2.四个原则:总结:2.3.2进程互斥的硬件实现方法1.中断屏蔽方法2.TestAndSet指令3.Swap指令总结:2.3.3信号量机制(1)信号量机制的定义1.整型信号量2.记录型信号量例子:小结:总结:(2)信号量机制实现进程...

2022-03-22 21:23:09 4101 1

原创 操作系统——进程的调度

2.2.1(1)调度的基本概念:(2)调度的三个层次1.高级调度2.中级调度3.低级调度补充知识:4.三层调度的联系与对比总结:(3)进程调度1.进程调度的时机2.进程调度的方式3.进程的切换与过程总结:学习ing...目录2.2.1(1)调度的基本概念:​(2)调度的三个层次1.高级调度2.中级调度3.低级调度补充知识:​...

2022-03-21 23:16:55 2832 1

原创 操作系统——进程与线程的基本学习

前言: 参考王道考研视频,截图笔记学习视频链接2.1.1进程的定义:2.1.2(1)进程的三种基本状态(2)进程的另两种状态(创建态与终止态)(3)进程状态的转换的流程图总结:2.1.3(1)进程控制(2)原语1.创建原语2.撤销原语3.阻塞原语和唤醒原语4.切换原语:总结:2.1.4(1)进程通信的定...

2022-03-21 10:39:43 3228 1

原创 MySQL深入——锁

目录锁的概述锁的分类1.全局锁2.表级锁1.表锁2.元数据锁3.意向锁3.行级锁 ​总结锁的概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除系统的计算资源(CPU,RAM,I/O)争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所以数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。锁...

2022-03-09 19:38:04 290

原创 MySQL深入——索引

索引概述:官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。索引的优缺点索引的结构MySQ..

2022-03-06 11:56:42 388

原创 前后端实现简单的数据库的增删改查

目录前言环境准备大致实现流程:前言 首先在除夕夜里,祝大家除夕快乐!!!经过这几天的学习,也算是学习到了不少东西,此篇来记录下学习成果:实现简单的前后端来实行数据库的增删改查。后端主要有MyBatis;前端主要有vue框架,ajax(并用axios简化操作),代码实现效果摘抄了element-ui;前后端交互中用到了fastjson,更快速地实现java对象与JSON的相互转变环境准备主要目录如下:分为Dao层,Service层,Web层和前端ht...

2022-01-31 22:09:26 7345 5

原创 jsp el表达式无法取出值的原因(备忘)

取不到值的话,需要在jsp页面下加<%@ page isELIgnored="false" %> ,不然jsp会忽略EL表达式如下图所示:

2022-01-26 16:18:06 390

原创 database连接错误(备忘)

显示错误如下:解决办法:在Database后加上"?serverTimezone=UTC"即可

2022-01-24 21:21:44 1090 1

原创 maven容易忽略的错误(备忘)

用maven启动一个线程后,要记得关闭。。。

2022-01-24 13:23:41 438

转载 maven 打包项目成war报错

主要报错信息:[WARNING] Error injecting: org.apache.maven.plugin.war.WarMojocom.google.inject.ProvisionException: Unable to provision, see the following errors:1) Error injecting constructor, java.lang.ExceptionInInitializerError: Cannot access defaults fi.

2022-01-23 21:27:35 3815

原创 利用Druid实现对数据库的一些基本操作

文章目录一、数据库表的基本信息 二、实现步骤 1.导入jar包 2.配置环境 3.java代码实现 一、数据库表的基本信息-- 删除tb_brand表DROP TABLE IF EXISTS tb_brand;-- 创建tb_brand表CREATE TABLE tb_brand( -- id 主键 id INT PRIMARY KEY AUTO_INCREMENT, -- 品牌名称 brand_name V

2022-01-19 21:53:44 1192 1

原创 反射的一些基本操作

文章目录一、反射的获取功能 二、使用方式 1.Constructor 2.Method 3.Field 4.简单演示 一、反射的获取功能1.获取成员变量们Field[] getFields():获取所有public修饰的成员变量Field getField(String name):获取指定名称的public修饰的成员变量Field[] getDeclaredFields():获取所有的成员变量,不考虑修饰符Field getDeclaredFiel...

2022-01-19 10:48:21 280

原创 Java代码在计算机的三个阶段

文章目录一、三个阶段 二、反射 获取Class对象的方式 总结一、三个阶段由此可以推断反射的三种获取Class对象的方式二、反射1.获取Class对象的方式:1.Class.forName("全类名");将字节码文件加载进内存(*多用于配置文件,讲类名定义在配置文件中。读取文件,加载类)2.类名.class:通过类名的属性class获取(*多用与参数传递)3.对象.getClass():getClass()方法已在object类中定义(*多用..

2022-01-19 10:21:54 421

新版JoiPlay 1.20.015.apk

新版JoiPlay 1.20.015.apk

2023-09-05

前后端实现简单的 数据库的增删改查

十分简单的实现

2022-01-31

空空如也

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

TA关注的人

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