摘要: Redis秒杀方案 Redis性能很好,被大量使用于秒杀场景下,实现秒杀有以下几种方案: 方案一:使用商品ID作为分布式锁,加锁后扣减库存该方案的实现流程为: 用户发起秒杀请求到Redis,Redis先使用商品ID作为key尝试加锁,保证只有一个用户进入之后流程,保证原子性; 如果加锁成功,则查询库 阅读全文
posted @ 2024-04-03 11:05 走向大牛的路上 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 原因: 采用GET请求方式而不是POST请求方式。 或者是传入的json字符串和对应封装的对象不对应,以及封装的接收对象中的字段类型有没有Date类型或者int等不是String类型。 解决方法: 方法一:将GET请求方式换成POST请求方式。 方法二:若有,则在set方法中统一将传入的参数调整为S 阅读全文
posted @ 2020-06-30 17:30 走向大牛的路上 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 简介: BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端发送请求服务器端就需要启动一个线程处理,若这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器(采用事 阅读全文
posted @ 2020-05-26 17:56 走向大牛的路上 阅读(3976) 评论(0) 推荐(0) 编辑
摘要: public void downloadZipFile( HttpServletResponse response) throws IOException { byte[] bytes1=null; ByteArrayOutputStream outputStream = new ByteArray 阅读全文
posted @ 2020-05-07 15:58 走向大牛的路上 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 一.WebSocket简单介绍 在WebSocket规范提出之前,开发人员实现实时性较强的功能基本采用两种轮询方法:轮询(polling)和Comet技术。 轮询:轮询技术要求客户端以设定的时间间隔周期性地向服务端发送请求,频繁地查询是否有新的数据改动。明显地,这种方法会导致过多不必要的请求,浪费流 阅读全文
posted @ 2020-01-16 18:06 走向大牛的路上 阅读(1736) 评论(0) 推荐(0) 编辑
摘要: 一、NoSQL的简介 NoSQL比关系型数据库性能高数倍。NoSQL凭借 “易扩展、大数据、高可用、高性能、灵活性”特点强势引领全场。CP型分布式数据库,能够保证数据的强一致性和分区容忍性。 二、NoSQL的常用种类 最大区别: mongodb在简单场景下性能高于MySQL的数倍, Redis基本只 阅读全文
posted @ 2020-01-16 15:50 走向大牛的路上 阅读(603) 评论(0) 推荐(0) 编辑
摘要: Timestamp和Datetime的相同点: 1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。 Timestamp和Datetime的不同点: 1> 两者的存储方式不一样 (1)、TIMESTAMP列必须有默认值不能为null,如果默认是default 阅读全文
posted @ 2020-01-16 11:30 走向大牛的路上 阅读(1061) 评论(0) 推荐(0) 编辑
摘要: List 初始化集合给固定大小,是为了减少触发扩容,从而减少内存的申请和释放操作 初始size为10,扩容:newsize = oldsize*1.5 HashTable 底层数组+链表实现,无论key还是value都不能为null(未做判空处理),线程安全,实现线程安全的方式是在修改数据时锁住整个 阅读全文
posted @ 2020-01-15 16:48 走向大牛的路上 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细 阅读全文
posted @ 2020-01-15 16:30 走向大牛的路上 阅读(103) 评论(0) 推荐(0) 编辑