一、应用场景1、多人并发场景,例如秒杀,抢购,设置总数量一百,并发一次减1,减到0为止。2、单人并发场景,例如连续点击事件,抢票脚本,事件往表插入一条记录,一个用户只能插入一条记录。二、表结构  -- Create table
create table IPLN_REDIS_TEST
(
 id VARCHAR2(32),
 key VARCHAR2(100),
 value NUMBER,
 r            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-19 19:55:29
                            
                                156阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Redis高并发Redis的高并发和快速原因1.Redis基于内存,内存的读写速度非常快;2.Redis是单线程的,为上下文切换线程节省了大量时间;3.Redis使用多路复用技术来处理并发连接。 非阻塞IO的内部实现使用epoll,以及由epoll +本身实现的简单事件框架。 epoll中的读取,写入,关闭和连接都被转换为事件,然后使用epoll的多路复用功能从不浪费任何时间在io上。Redis高            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-30 10:37:14
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1. Redis Cluster1. 呼唤集群2. 数据分布3. 搭建集群4. Redis Cluster安装配置2. 深入Redis Cluster1. 集群伸缩2. 客户端路由3. 多节点命令实现4. 批量操作怎么实现5. 故障转移6. Redis Cluster开发运维常见问题7. 集群总结最后 1. Redis Cluster1. 呼唤集群1. 并发量10万/每秒 -> 业务需            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-18 22:23:49
                            
                                70阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             并发控制与分布式锁(redis/zookeeper)实现【图文教程】_第3章---zookeeper分布式锁实现并发控制温馨提示:      zookeeper锁不仅适用于单机服务,也适用于集群分布式系统的并发控制!!1 Zk分布式锁机制需求:多个线程并发执行被加了zk锁的服务A,执行服务A之前需要获取锁。zk锁流程:                 
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 22:57:12
                            
                                78阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            业务描述:发起红包,规定好总金额100,红包个数10。发完红包后,1秒钟内100个人同时抢。需要注意的点:1.数据库瞬时压力过大,需采用缓存;2.线程并发进行,避免超卖;处理:使用redis配合Redission加锁的方式,sexnx也可实现。表设计:      列依次为:红包总金额,领取总人数,当前领取红包金额,当前领取人数             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 17:13:41
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            nginx+lua+redis构建高并发应用
ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。
url请求nginx服务器,然后lua查询redis,返回json数据。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-07-30 21:14:36
                            
                                1183阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 什么是并发操作?并发操作是指同一时间可能有多个用户对同一数据进行读写操作.2. 并发操作对数据的影响如果对并发操作不做任何控制的话,会造成数据的不完整性。可能造成读脏数据,不可重复读,丢失修改还有幻读。 3. 对数据不完整性的举例(1) 丢失修改当两个或多个事务(或两个或多个用户)选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-06 14:28:21
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             这个时候如果不做任何保护措施,服务器就会承受很大的处理压力,请求量很高,服务器负载也很高,并且当请求超过服务器承载极限的时候,系统就会崩溃,导致所有人都不能访问。为了应用服务的高可用,一个常用的办法是对大流量的请求(秒杀/抢购)进行限流,拦截掉大部分请求,只允许一部分请求真正进入后端服务器,这样就可以防止大量请求造成系统压力过大导致的系统崩溃,从而保护服务正常可用。令牌桶(Token             
                
         
            
            
            
            并发工具J.U.C - AQSjava.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。1. CountDownLatch用来控制一个或者多个线程等待多个线程。维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0 的时候,那些因为调用 await() 方法而在等待的线程就会被唤醒。public clas            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-28 13:01:06
                            
                                34阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            RedisTemplate执行lua脚本在Redis集群模式下报错EvalSha is not supported in cluster environment.异常信息:org.springframework.dao.InvalidDataAccessApiUsageException: EvalSha is not supported in cluster environment.
	at o            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-27 23:58:48
                            
                                411阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            nginx+lua+redis构建高并发应用ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。url请求nginx服务器,然后lua查询redis,返回json数据。备注:centos或者redhat系统请跳转到nginx + ngx_lua安装测试一.安装lua  # apt-get inst            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-12-14 14:25:10
                            
                                63阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    库存系统的架构很有意思,从上图来看功能上其实并不复杂,但是他面临的技术复杂度却是相当高的,比如秒杀品在高并发的情况下如何防止超卖,另外库存系统还不是一个纯技术的系统,需要结合用户的行为特点来考虑,比如下文中提到什么时间进行库存的扣减最合适,我们先抛出几个问题和大家一起探讨下,如有有妥不处,欢迎大家拍砖。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-17 15:31:54
                            
                                21阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                    并发和并行是一个相似而本质上又有不同的一个概念。        并发:在操作系统同一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个CPU上运行,但任一个时刻点上只有一个程序在处理机上运行。&nb            
                
         
            
            
            
            需要完成功能借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本IDE:IDEA 2022 1、读取库存数据 【Lua】  2、判断库存 【Lua】3、扣减库存 【Lua】4、创建队列和组 【Java】5、发送队列消息             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 11:08:29
                            
                                267阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                                                        高并发编程(一)        概念: &            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 22:07:34
                            
                                896阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            redis集群搭建请自行百度redis cluster tutorial :https://redis.io/topics/cluster-tutorialredis中lua的应用:https://segmentfault.com/a/1190000007892988已有redis (3.2.5)集群如下图:tips:请注意命令中的端口变化先连接某个实例,设置key,执行如下命令,key中带了ha            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 16:25:00
                            
                                132阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            缓存击穿作为缓存,受到内存大小限制,可能:key 超过了过期时间key 被 LRU LFU 清掉了因为某些 key 不在 redis 里面了,大量并发来找这个 key 的时候,这时候客户端去直接请求数据库,这就是击穿。这个问题怎么解决? 只要发现某个key不存在,就让所有对这个key的请求去抢一把锁。也就是说, 让第一个找key的请求,执行一个setnx,类似于放一把锁。只有获得锁的人才能去数据库            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-18 20:21:03
                            
                                58阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            EVAL、EVALSHA命令Redis从2.6.0版本开始提供了eval命令,通过内置的Lua解释器,可以让用户执行一段Lua脚本并返回数据。因为Redis单线程模型的特点,可以保证多个命令的原子性(因为最近的项目才想到用Lua),详细的使用方法请移步官方文档。脚本性能 Redis保证了脚本执行的原子性,所以在当前脚本没执行完之前,别的命令和脚本都是等待状态,所以一定要控制好脚本中的内容,防止出现            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 20:00:54
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            并发:讲并发之前,要先看一张图:Concurrency,是并发的意思。并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。微观角度:所有的并发处理都有排队等候,唤醒,执行等这样的步骤,在微观上他们都是序列被处理的,如果是同一时刻到达的请求(或线程)也会根据优先级的不同,而先后进入队列排队等候执行。宏观角度:多个            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 19:44:47
                            
                                29阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、简介本文主要讲解并发编程中常用的三个工具,他们分别是CountDownLatch(闭锁)、CycleBarrier(循环栏栅)、Semaphore(信号量),三个工具都是在JUC并发包下提供的多线程开发工具,各自有各自的使用场景,在多线程开发中可以根据业务场景来选择合适的工具。三个工具是以AQS以及以AQS为基础的Lock来构成的,所以最底层还是AQS,关于AQS可以通过文章《JUC-AQS框