- 博客(24)
- 收藏
- 关注
原创 数据库Mysql总结
mysql是一种关系型数据库,建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。SERIALIZABLE 隔离级别是通过锁来实现的,READ-COMMITTED 和 REPEATABLE-READ 隔离级别是基于 MVCC 实现的隔离级别脏读不可重复读幻读读未提交√√√读已提交×√√可重复读(默认)××√可串行化×××。
2024-08-04 17:48:18
806
原创 RabbitMQ快速上手(包含秒杀案例)
MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议 的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中 间件不同产品,不同的开发语言等条件的限制。2006年,AMQP 规范发布。类比HTTP。
2023-05-06 19:11:22
1666
1
原创 Redis实现优惠券秒杀业务
优惠券分为两种,一种是普通优惠券,优惠力度较小,另一种是秒杀优惠券,秒杀优惠券优惠力度大,但是数量有限并且限定时间抢购。用户购买优惠券时首先会看优惠券是否有库存,如果有还会判断优惠券是否开始抢购。当用户抢购时,就会生成订单并保存到order表中,而订单表如果使用数据库自增ID就会存在一些问题:id的规律性太明显受单表数据量的限制场景分析一:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。
2023-05-01 00:02:12
1078
1
原创 Redis在业务开发中的应用(包含缓存击穿等问题)
首先介绍一下为什么要使用缓存。举个简单的例子,我们经常使用的淘宝12306这种数据量极大的软件,一个业务的数据量可能达到千万甚至亿级,如果我们开发者使用数据库去存储这些信息,那无论对于哪个数据库产品来说都是顶不住的(必挂)而且性能也是很差的(查询慢)。为了减轻数据库的压力并提高性能,我们可以在请求打到数据库之前添加一个缓冲,也就是缓存,缓存数据存储在代码中,而代码运行在内存中,内存的读写性能远高于磁盘,可以大大降低服务器读写压力 本篇文章使用Redis做缓存。
2023-04-29 20:15:52
368
3
原创 自定义RedisTemplate
首先说明一下在Spring Boot中使用Redis操作对象时 如果不将对象序列化会产生一下错误。在工作中更容易操作Redis,我们一般重新封装RedisTemplate类。在实际开发中我们会自定义RedisTemplate工具 简化开发。在操作Redis中,关于对象的保存我们得序列化才可以正常操作!这时我们就要对RedisTemplate重新封装。在config中添加RedisConfig。
2023-04-23 13:46:04
834
原创 Swagger的基本使用
在前后端分离开发中通常由后端程序员设计接口,完成后需要编写接口文档,最后将文档交给前端工程师,前端工程师参考文档进行开发。可以通过一些工具快速生成接口文档 ,例如Swagger生成接口在线文档。什么是Swagger?OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。
2023-04-02 14:55:09
175
原创 Java网络编程
网络编程概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统.客户端—互联网—服务器网络编程:网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,
2022-03-28 12:08:26
453
原创 Java多线程
一、多线程的基本概念进程和线程:程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象进程: 进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存线程: 线程是进程的基本执行单元,一个进程的所有任务都在线程中执行。 进程要想执行任务,必须得有线程,进程至少要有一条线程。程序启动会默认开启一条线程,这条线程被称为主线程或 UI 线程进程和线程的区别:同一进程的线程共享本进程的地址空间,而进程之间则是独
2022-03-25 00:05:51
463
原创 Java对象序列化
对象序列化流与反序列化流:Java对象是在Java虚拟机上生成的,如果需要远程传输或者保存在硬盘上,就要将java对象转换成可传输的文件流作用:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中(持久化对象)Java平台允许我们在内存中创建可复用的Java对象,但只有当Java虚拟机处于运行时,这些对象才可能存在,也就是这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存指定的对象(持久化对象),并在将来重新读取被保存的对象。 在网络上传送对
2022-03-21 22:47:08
2929
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人