首页 > 数据库 >redis 轻松实现分布式秒杀系统

redis 轻松实现分布式秒杀系统

时间:2022-12-18 10:33:31浏览次数:34  
标签:redis 系统 list 轻松 秒杀 分布式

redis 轻松实现分布式秒杀系统

利用redis操作的原子性,轻松实现一个分布式的秒杀系统。

假设设计背景: 1万人去抢10个商品

设计思路:

在redis中存储一个list,每次用户请求抢购商品,就删除list队列中的一个值,这样,利用redis的原子性,就可以实现一个分布式秒杀系统。

代码示例

存货:

向redis中存一个list,list中保存要秒杀的货品

image-20221218102522033

取货

每次都取出list队列尾部的值,当值为null时表示没有货了,就抢购失败了

image-20221218102615973

测试

向redis 的list中存储了5件货物,使用jmeter制造10个并发请求,结果如下

image-20221218102743903

可以看到,是没有问题的

标签:redis,系统,list,轻松,秒杀,分布式
From: https://www.cnblogs.com/acdongla/p/16990060.html

相关文章

  • linux 安装运行redis与Spring连接配置,10分钟快速入门
    linux是一方面是开源免费的,另一面其长时间运行的可靠性远高于其他系统,所以是目前国内绝大多数公司部署项目的首选。其中部署项目往往需要配套诸如Mysql、maven、redis等等......
  • 在springboot项目里配置ReactiveRedisTemplate
    配置pom.xml: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> </dependency> ......
  • redis之单线程
    一、redis为何是单线程官方给出的答案:因为Redis是基于内存的操作,CPU不会成为Redis的瓶颈,而最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不......
  • redis底层数据结构之字典(dict)
    字典(dict)字典又称为符号表或者关联数组、或映射(map),是一种用于保存键值对(key-value)的抽象数据结构字典中的每个key都是唯一的,通过key对值来进行查找或修改,时间复杂......
  • redis底层数据结构之跳表(skiplist)
    跳表(跳跃表,skiplist)跳跃表(skiplist)是用于有序元素序列快速搜索查找的数据结构,跳表是一个随机化的数据结构,实质是一种可以进行二分查找的、具有层次结构的有序链表......
  • redis底层数据结构之整数集合(intset)
    整数集合(intset)当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis会使用整数集合(intset)作为集合键的底层实现整数集合用于保存整数值的集合抽象数据类型......
  • redis之五种基本数据类型
    五种基本数据类型redis存储任何类型的数据都是以key-value形式保存,并且所有的key都是字符串,所以讨论基础数据结构都是基于value的数据类型常见的5种数据类型是:String、Li......
  • redis底层数据结构之简单动态字符串(SDS)
    简单动态字符串(simpledynamicstring,SDS)redis使用C语言编写的,但是redis的字符串却不是C语言中的字符串(以空字符'\0'结尾的字符数组),redis定义了一种简单动态字符串(s......
  • redis底层数据结构之双向链表(linkedlist)
    双向链表(linkedlist)redis的双向链表(linkedlist)是基于链表的一种数据结构链表是一种常见的基础数据结构,是一种非顺序存储数据的线性表,在每一个节点里存储了下一个节点......
  • redis底层数据结构之压缩列表(ziplist)
    压缩列表(ziplist)压缩列表(ziplist)是redis为了节约内存而开发的,由连续内存块组成的顺序型数据结构,适用于长度较小的值存取的效率高,内存占用小,但由于内存是连续的,在修......