# 基于Redis系统 随着互联网的发展,各种在线抢购活动变得越来越普遍。为了应对高并发的需求,我们可以利用Redis这个高性能的缓存数据库来构建一个高效的系统。 ## Redis简介 Redis是一个开源的内存数据库,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,可以满足各种不同的需求。 ## 系统设计 ### 流程图
原创 2024-03-07 05:07:21
219阅读
背景 Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,下面介绍下Redis在京东到家的订单列表中的使用场景。主要从以下几个方面来介绍:订单列表在Redis中的存储结构Redis和DB数据一致性保证Redis中的分布式锁缓存防穿透和雪崩订单列表在Redis中的存储结构订单列表数据在缓存中,是以用户的唯一标识作为键,以一个按下单时间倒序的有序集合为值进行存储的。大家都知道Red
转载 2023-05-25 15:16:46
86阅读
是每年都绕不开的话题,即使我们的基础交通、高铁技术发展迅速,也难以满足现实“迁徙”的需求,这根本的原因是人口众多、东西贫富差距。虽然我们不能从根本问题去解决,但可以为家人、朋友争取到一张更合适的车票。一、要点1、总体原则 ,选择的顺序是动车(G、D开头)二等、一等,快车(Z、T)硬卧、硬座,普通车(K)硬卧、硬座;不要选慢车(部分K)、临时车(L);当然也不排除有的临时车也很快。2、无论你
转载 2023-08-02 22:34:53
251阅读
# Redis 与退票实现详解 在现代互联网应用中,系统是一项常见且具有挑战性的功能。无论是演唱会、火车票还是其他有限资源的票务系统,如何处理大量用户的抢购请求是一个技术难题。本文将以 Redis 为基础,探讨如何实现一个简单的和退票放回系统,并通过代码示例来说明。 ## Redis 基础 Redis 是一个开源的内存数据库,支持多种数据结构,并具有高效的数据存取能力。这些特性使
原创 2024-09-10 05:56:28
63阅读
由于时间安排上的问题,微信的工程紧赶慢赶才最终勉强赶在ddl之前完成。“一定要安排好时间,越早动手越好”,这大概会是我从中得到的最有意义的教训吧。下面说一些我对这一工程的一些理解吧。这些内容在文档中都有,在这里还是再重复一遍。本项目是在Django 1.9.x 封装的基础上进行的二次开发,开发内容主要集中在作为Controller的APIView与WeChatView两部分,分别对应API接口
转载 2024-09-26 17:34:42
37阅读
后面的时间我会手摸手带大家一起写几个实战性的项目。主要希望能应用上之前梳理的那些知识点,同时让没有写过项目的同学对实战项目有一定的认识。小明问:手摸手?你这项目是正经项目吗?我:我做这个的,能教给你不正经项目?doge当然基于个人的认识不足,肯定有写的不好的地方,希望同学们能在评论区指出0 0。1. 项目介绍秒杀系统其实大家在日常生活中接触很多,12306、特价商品抢购、拼多多拼团等等等等。秒
转载 2024-09-26 18:20:05
128阅读
# Redis实现Java ## 介绍 在实际开发中,系统是一个常见的应用场景。当某一场活动或者产品推出时,可能会引起大量用户的抢购行为。为了保证系统的并发性和性能,我们可以利用Redis这个高性能的内存数据库来实现功能。 本文将介绍如何利用Java语言和Redis数据库来实现一个简单的系统。我们将使用Java语言编写后端服务,并利用Redis来存储票数和用户的情况。
原创 2024-03-16 06:31:06
90阅读
1. 在Redis里 , list是有序(按添加顺序) , set是无序   RPUSH   key  value .  这是放右边 , 谁后到, 那么序号越大 .  如果100个人80张 , 同时插入 , 取 ( , 0 , 79) 按顺序插入,只取前面80个       如果人在80个里面
转载 2023-05-25 16:36:35
69阅读
一、前言是的,你没看错,的确是12306的工具,几率非常高,先看看界面都有哪些功能,如图:软件在我们登录前会要求我们登录12306,我们直接登录就是了。二、登录查票当我们登录后就可以查询自己想要去的目的地的车票的状况了,我们可以开启多站查询,如图:然后在点击查询车票,如图:此时我们就可以选择适合我们的车次了,这里面既有需要预订的车次也有预售的车次,看自己怎么选择了,选择好了之后我们来设置好
转载 2023-10-10 07:11:21
300阅读
目录一、并发与线程同步二、锁机制案例取钱案例案例优化版本影院购票案例案例-面向对象思想 三、并发容器一、并发与线程同步并发:同一个对象的多个线程同时操作。并发有可能引发线程不安全的问题。线程同步是一种等待机制,用于解决线程不安全问题。当多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候就可以通过线程同步方法。多个需要同时访问此对象的线程进入这个对象的等待池形成队列,
转载 2023-08-01 22:01:02
551阅读
      下周末就是中秋节了,笔者做一名北漂的天津人,也特别能理解那些远离家乡独自在外的同事,每逢佳节倍思亲,但这时候的火车票却是十分难,那么笔者就为大家介绍一下今天Github上趋势榜首的“12306自动”项目的使用方法(Github地址在https://codeload.github.com/testerSunshine/12306/zip/master)
转载 2024-06-30 06:45:33
457阅读
什么是分布式锁,我之前有一篇文章已经写得非常清楚,包含原理和方法,接下来我们要实现的单方法 则是基于最简单的redis的setnx方法来进行实现添加maven依赖<!--redis--> <dependency> <groupId>org.springframework.boot</groupId>
转载 2024-04-09 21:22:05
319阅读
秒杀买卖商品秒杀功能:出现的问题原因卖超:使用synchronized锁线程1线程2多线程解决办法1可以使用redis中的setIfAbsent分布式锁Redisson使用redis+mq+spring cloud alibaba sentinel限流解决项目1.创建项目2.删除src3.导入依赖4.创建基础模块添加库存表添加订单表5.创建seckill-inventory服务实现库存减少导入依
开发的电子商务平台也很多了,刚好有时间就整理一下巩固加深理解1、安装redis,根据自己的php版本安装对应的redis扩展(此步骤简单的描述一下)1.1.安装php_igbinary.dll,php_redis.dll扩展此处需要注意你的php版本如图:1.2.php.ini文件新增extension=php_igbinary.dll;extension=php_redis.dll两处扩展ok此
转载 2023-10-17 20:37:58
49阅读
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ThreadTicket { public static void main(String[] args) { Booking b1 = new Booking("军人
黑马程序员全套Java教程_Java基础教程_多线程之线程同步(三十五)案例:卖票2.1 卖票案例的思考2.2 卖票案例数据安全问题的解决2.3 同步代码块2.4 同步方法2.5 线程安全的类2.6 Lock锁 案例:卖票需求:某电影院目前正在上映国产大片,共有100张,而它有三个窗口卖票,请设计一个程序模拟该电影院卖票。思路: (1)定义一个类SellTickets实现Runable接口,里
转载 2023-07-20 21:17:37
245阅读
是一位叫文贤平的程序员,项目名称很有档次,直接明了,就叫“ 12306 ”,功能一直在更新,2018年初开始提交,最近的一次提交在两天前,也就是9月18号,看得出很用心。 流程图画的很清晰明了,从查询余开始,到付款完成,最后获取订单号。一气呵成,不怕人类手速太慢。技术原理其实是没什么说的, 懂爬虫的人都知道,实质上就是用程序模拟人的行为
春节正在如火如荼的进行,过年回家那肯定需要,每年的大战,都是一场硬战,没有一个好工具,怎么能上战场死锁呢。今天小编推荐一个Python工具,送到了GitHub趋势榜第一:项目名很干脆,就是“12306”,标星超过1.2W,来自名叫文贤平的程序员。这很可能是全GitHub最德高望重的购票小助手了,功能一直在更新,且现已支持Python 3.6以上版本。有些后起之秀,也是在它的基础上开
转载 2024-07-31 17:37:26
406阅读
临近放假,相信我们每天都在群聊里或者朋友圈看到一些帮忙火车票的信息。看到朋友们回家的车票这么辛(bei)苦(can),结合圈里一些前辈的指点,抱着学习的心态用Python做了一个简单的自动化程序,抢到之后通过绑定的邮箱(比如QQ)发通知。下面分享主要内容:版本号 Python 3.6.5编译器 PyCharm PRO 2018.1浏览器 Google Chrome 71.0.3首先,我们
转载 2023-08-04 10:36:09
739阅读
Python 在手,回家不愁
原创 2022-03-16 14:41:20
754阅读
  • 1
  • 2
  • 3
  • 4
  • 5