1. 事务的定义 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用就是串联多个命令防止别的命令插队。 2. Multi、Exec、discard 从输入Multi命令开始,输入的命令都 ...
分类:
其他好文 时间:
2021-06-13 10:32:53
阅读次数:
0
听到 乐观锁、悲观锁的概念,搜了下,摘要出为能理解的尽量短的文字说明: 概念 悲观锁:正常的经典使用方式是叫悲观锁,先取锁,成功取得后才做操作(不论是读还是写)。 乐观锁:乐观并发控制相信事务之间的数据竞争(data race)的概率是比较小的,因此尽可能直接做下去,直到提交的时候才去锁定,所以不会 ...
分类:
其他好文 时间:
2021-06-05 18:31:36
阅读次数:
0
一、分类 1.从锁的公平性来区分,可以分为公平锁和非公平锁;2.从锁是否可重复获取可分为可重入锁和不可重入锁;3.从资源已被锁定,线程是否阻塞可以分为自旋锁;4.从线程是否对资源加锁可以分为悲观锁和乐观锁;5.从那个多个线程能否获取同一把锁分为共享锁 和 排他锁。6.多Jvm环境下多线程操作多个资源 ...
分类:
其他好文 时间:
2021-06-02 20:20:32
阅读次数:
0
幂等性概念 数学中的定义:其任意多次执行所产生的影响均与一次执行的影响相同。比如f(f(x)) = f(x). HTTP协议中的定义:在HTTP/1.1规范中幂等性的定义是:HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。其中GET,PUT, DELETE 如何测试幂等性 幂等 ...
分类:
其他好文 时间:
2021-06-02 14:05:20
阅读次数:
0
1.乐观锁和悲观锁 对于同一个共享资源,悲观锁认为,在自己使用数据的时间内,一定会有其它的线程来使用该数据,所以必须要对这个共享资源进行上锁,如果不上锁,在这期间数据可能会被其它的线程锁修改。java中的synchronized和Lock的实现类都是悲观锁。 而对于乐观锁而言,认为自己在使用共享资源 ...
分类:
编程语言 时间:
2021-06-02 12:08:39
阅读次数:
0
需要使用幂等的场景: 前端重复提交 接口超时重试 消息队列重复消费 解决方案: token机制:①客户端请求获取token,服务端生成一个唯一ID作为token存在redis中;②客户端第二次请求时携带token,服务端校验token成功则执行业务操作并删除token,服务端校验token失败则表示 ...
分类:
其他好文 时间:
2021-04-22 16:19:38
阅读次数:
0
1.sleep和wait之间的差别 2.String和StringBuffer之间的差别 3.单例模式及应用场景 4.Redis应用场景 5.RabbitMQ应用场景 6.悲观锁和乐观锁 7 访问控制符 ...
分类:
其他好文 时间:
2021-03-05 13:17:36
阅读次数:
0
1.悲观锁 很悲观,什么时候都会出问题,无论做什么都加锁,影响效率。 2.乐观锁 很乐观,任务什么时候都不会出问题,所以不会上锁,跟新数据的时候去判断一些,在此期间是否有人修改过这个数据,在Mysql中是利用Version字段实现!在Redis中利用watch命令。 获取version 更新的时候比 ...
分类:
其他好文 时间:
2021-02-16 12:29:04
阅读次数:
0
前言本文是秒杀系统的第二篇,通过实际代码讲解,帮助你快速的了解秒杀系统的关键点,上手实际项目。本篇主要讲解接口限流措施,接口限流其实定义也非常广,接口限流本身也是系统安全防护的一种措施,暂时列举这几种容易理解的:令牌桶限流单用户访问频率限流抢购接口隐藏此外,前文发出后很多同学对于乐观锁在高并发时无法卖出全部商品提出了“严正抗议”,所以还是在本篇中补充讲解下乐观锁与悲观锁。前文回顾和未来文章规划:从
分类:
其他好文 时间:
2020-12-11 12:04:27
阅读次数:
3
一、锁介绍 不同存储引擎支持的锁是不同的,比如MyISAM只有表锁,而InnoDB既支持表锁又支持行锁。 下图展示了InnoDB不同锁类型之间的关系: 图中的概念比较多不好理解,下面依次进行说明。 1.1乐观锁 ? 乐观锁是相对悲观锁而言的,乐观锁假设数据一般情况下不会造成冲突,所在在数据进行提交更 ...
分类:
数据库 时间:
2020-11-11 16:49:56
阅读次数:
27