前言最近做 API 接口压测时,TPS(要求至少 7000/s)始终上不去,究其原因发现很多接口是直接连库查询。所以想到用 SpringCache +Codis 集群(底层 Redis)做缓存。效果还是很不错的,平均每个接口 tps 能达到 1W/s,但是有些接口时不时的会报类型转换或读取超时异常。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-23 10:56:16
                            
                                25阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最大的一个区别就是JPQL是面向对象的,我们可以在语句中使用一些面向对象的语法(new 对象,调属性)。建议初学者,可以先学习sql语言。1.JPQL语句的使用规范JPA的查询语言,类似于sql区分大小写不区分大小写 3.不能写select * 要写select 别名2.JPQL基本查询语句(我这里没有使用框架,以后想Spring等框架使用起来会更加方便)    1.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-26 16:36:55
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言参考文章:  1. Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块)  2. Java 多线程:Lock 接口(接口方法分析,ReentrantLock,ReadWriteLock)  3. synchronized 与 Lock 的那点事  4. Java并发编程:Lock  5. ReentrantLock(重入锁)以及公平性  参考书籍:《疯狂Ja            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-02 10:50:34
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 项目方案:使用JPA给MySQL加锁实现并发控制
## 1. 项目背景
在实际开发中,我们经常需要处理并发访问数据库的情况。为了避免数据混乱和丢失,我们需要给数据库加锁来控制并发访问。
## 2. 技术选型
- Spring Boot
- Spring Data JPA
- MySQL
## 3. 方案实现
### 3.1 加锁方式
在MySQL中,我们可以使用`SELECT .            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-13 06:14:36
                            
                                51阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            CleverCode在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误。下面CleverCode将分析            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-12-06 09:15:55
                            
                                51阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## MongoDB 并发与加锁
### 引言
随着数据量的不断增长和用户量的不断扩大,数据库的并发访问成为了一个重要的问题。在多个用户同时访问数据库的情况下,如果不加以限制和管理,可能会导致数据的不一致性和性能的下降。为了解决这个问题,数据库引入了并发控制机制和锁机制。
本文将介绍 MongoDB 数据库的并发控制和加锁机制,并通过代码示例和流程图来帮助读者更好地理解并发和锁的概念。
#            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-15 19:26:13
                            
                                215阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            spring data jpa是spring公司下的spring data项目的一个模块。  spring data jpa定义了接口来进行持久层的编写规范,同时还大大简化了持久层的CRUD操作。  从此可以看出,spring data jpa与jpa之间并没有直接的关系。 jpa是由sun公司定义的持久层规范,但是jpa 并没有做任何简化,其中只有一堆接口。&nbs            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-24 16:30:53
                            
                                96阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring Boot事务配置管理场景:我们在开发企业应用时,由于数据操作在顺序执行的过程中,线上可能有各种无法预知的问题,任何一步操作都有可能发生异常,异常则会导致后续的操作无法完成。此时由于业务逻辑并未正确的完成,所以在之前操作过数据库的动作并不可靠,需要在这种情况下进行数据的回滚。1导入依赖springboot的事务管理需要导入spring-boot-starter-jdbc;而我们导入的m            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-30 11:14:22
                            
                                99阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    学习SpringAOP呢,我们需要先知道我们学SpringAOP是为了什么?他能做什么?下面我就慢慢讲解一些我知道的东西。         在开始之前,我们要知道,SpringAOP其实是一种编程思想,我爬了一张网            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-16 22:21:52
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            并发是Java语言中一个很重要的特性,使用得当可以显著提高程序的性能。在大二的课程《现代操作系统》中,我已经对线程有一个初步的了解,然而也只是停留在概念层面上。我对知识掌握的薄弱,在实践中展现无遗。废话不多说,现在开始对知识点的总结。今天写的是Java并发中最基本的线程创建。首先,正如在此书中的介绍,被线程驱动的称为”任务”。在Java中,以实现Runnable接口的方式,说明此类的对象由线程驱动            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-27 14:50:05
                            
                                28阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            使用Spring的表达式解析器+Redis实现分布式锁怎么配置使用Redis就不在这里说明了!!!AOP依赖<!--引用AOP依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 10:41:00
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring Data JPA 是Spring基于ORM框架、JPA规范的基础上封装的一套JPA 应用框架,底层使用了Hibernate 的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能接口,且易于扩展!学习并使用Spring Data JPA可以极大提高开发效率!由于微服务系统的广泛应用,服务粒度逐渐细化,多表关联查询的场景一定程度减少。单            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 12:08:06
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring Data JPA 教程: 介绍篇使用Java Persistence API创建数据仓库(repositories)是一个繁琐的过程,耗费我们大量的时间,并且需要我们写一堆重复恶心的代码。我们可以使用下面这些步骤减少重复代码的编写:创建一个抽象仓库基类(abstract base repository class),该类为entities提供CRUD的操作。创建具体的仓库类(repo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-14 14:10:04
                            
                                26阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring Data框架和Spring Data JPA简介Spring Data : Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。  下面给出SpringData 项目所支持 NoSQL 存储:  MongoDB (文档数据库)  Neo4j(图形数据库)  Redis(键/值存储)  Hbase(列族数据库)SpringData 项目所支持的关系数据存储            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 07:39:16
                            
                                84阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            5 Spring Data JPA 之 @Query 语法详解及其应用5.1 快速体验 @Query 的方法沿⽤我们之前的例⼦,新增⼀个 @Query 的⽅法:// 通过 query 注解根据 name 查询 user 信息
@Query("From User where name=:name")
User findByQuery(@Param("name") String nameParam);            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-28 15:05:01
                            
                                72阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了。下面我们就用一个例子来讲述以下 JPA 使用的基本操作。新建项目,增加依赖在 Intellij IDEA 里面新建一个空的 SpringBoot 项目。具体步骤参考 SpringBoot 的第一次邂逅。根据本样例的需求,我们要添加下面三个依赖<dep            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-18 11:19:50
                            
                                97阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SpringDataJpa持久层常用操作前言SpringDataJPA 是 Spring Data 技术下的子项目,使用SpringDataJPA 访问数据只需要数据访问层接口实现 JpaRepository接口即可。由于 JpaRepository接口继承了PagingAndSortingRepository接口,所以也有它的一些 功能。前面讲了SpringDataJpa的快速入门,请查看博主的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-28 06:36:32
                            
                                111阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            客户端加锁:
对于使用某个对象x的客户端代码,使用“x本身用于保护其状态的锁”来保护这段客户端代码。
要使用客户端加锁,必须知道x对象使用的是哪一个锁。
通过客户端加锁机制,实现常见的“若没有则添加”的操作:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-15 09:31:24
                            
                                152阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            分布式redis锁,spring-boot-starter-data-redis,RedisTemplate,redis
    分布式redis锁,spring-boot-starter-data-redis,RedisTemplate公司聊天的聊天系统,近期出现多个客服并发接待同一个客户的记录,经排查,是由于代码加的同步锁在集群环境下不适用,我们的客服系统是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-28 22:23:05
                            
                                165阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言之前总结的多线程的调度、并发调度、线程加锁安全等等并发包底层大都使用了线程锁机制。咱们通过锁的源码来看看JDK如何将这些资源进行加锁限制的,怎么就能做到线程集中等待后就唤醒主线程的。一段并发包源码 以下是java.util.concurrent.CyclicBarrier的底层代码片段。  
     Java代码   
     
      1. privat            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 13:46:49
                            
                                77阅读
                            
                                                                             
                 
                
                                
                    