2020年3月20日
摘要:
当并发量比较大的时候,通常会用到限流。 这里讲解一个redis实现的限流方法。 首先这里有一个坑(我自己造成的) 我在编写注解式缓存的时候,重写了redisTemplete实现Bean,导致这个问题一天没解决,其实早就应该想到。 首先我们把Bean修改过来: @Beanpublic RedisTem
阅读全文
posted @ 2020-03-20 16:26
Jason_LZP
阅读(589)
推荐(0)
2020年3月19日
摘要:
之前我加锁是在方法里面,但是有一个问题,就是没有解耦,就跟我说redis不同mysql缓存是一样的。 这里也写一个AOP,利用注解,进行方法的加锁。 首先,写一个ASPECT @Aspect@Componentpublic class RedisLockAspect { @Autowired pri
阅读全文
posted @ 2020-03-19 11:59
Jason_LZP
阅读(1552)
推荐(0)
2020年3月18日
摘要:
数据同步,一直是个头痛的问题。 看过很多代码,很多实现都是在业务层众,先操作数据库,然后顺便更新缓存。达到同步的作用。 1、没有解耦 服务之间应该是解耦的 spring提供的AOP,就是用来干这个的。spring中的cache包,提供了一系列缓存更新的方法。 重点: @Cacheable @Cach
阅读全文
posted @ 2020-03-18 16:55
Jason_LZP
阅读(614)
推荐(0)
2020年3月17日
摘要:
在自己实现redis分布式锁的时候,我问了,为什么有些公司采用redisson去实现锁?! 其实理由有很多,个人认为最关键的还是锁的控制。 “拿来主义”,别人已经做好的,拿来用就行了,当然,你要懂原理就更好! 自己实现的锁有很多问题,比如说,锁的过期时间,在高并发情况下,不能保证每次任务进来的时间长
阅读全文
posted @ 2020-03-17 23:39
Jason_LZP
阅读(561)
推荐(0)
摘要:
这里讲的CAS 并不是CAS 的单点登录包。要了解单点登录的话,可以另外百度一下。 Compare And Set 意思很明显,先比较,后设置 为什么要先比较呢,就是因为在多线程的情况下,每次请求先后不一,这也就是乐观锁的概念。 一个update语句你就知道了: old_num = 先获取现有的库存
阅读全文
posted @ 2020-03-17 14:19
Jason_LZP
阅读(112)
推荐(0)
2020年3月16日
摘要:
先来看一段锁库存代码: 不用看具体代码逻辑,意思很简单,在数据库表设计过程中,下订单后,锁定下单的库存,等待付款。 这段代码从功能上讲,这个逻辑看似没问题,但是在并发角度讲,问题很大了。 首先,想象一下,两个线程都在执行这段逻辑(就两个买家都在买同一个商品),当买家1执行到set,还未执行到upda
阅读全文
posted @ 2020-03-16 14:37
Jason_LZP
阅读(115)
推荐(0)
2020年3月3日
摘要:
流api的使用 追加说明,现如今,你们可以发现,越来越多代码采用流api等形式,如果你还看不懂,或者还不会用那就out啦!! List<Integer> integers = new ArrayList<>(); integers.add(1); integers.add(3); integers.
阅读全文
posted @ 2020-03-03 21:10
Jason_LZP
阅读(172)
推荐(0)
2020年2月3日
摘要:
一般在代码中,很多地方要对 对象 进行null判断,java 8 提供了一个更好对方法。 Optional、OptionalDouble、OptionalInt和OptionalLong package com.jason.mq;import java.util.Optional;public cl
阅读全文
posted @ 2020-02-03 01:02
Jason_LZP
阅读(269)
推荐(0)
2020年1月30日
摘要:
Spliterator使用 这是java 8 新增但迭代器,不同其他迭代器,这个支持并行。 来看例子: package com.jason.mq;import java.util.ArrayList;import java.util.List;import java.util.Spliterator
阅读全文
posted @ 2020-01-30 00:32
Jason_LZP
阅读(227)
推荐(0)
2020年1月28日
摘要:
最新目标,除了看技术文档之外。 把从码云上 电商(mall) 项目代码看懂。 留此纪念。看的一些随想都记录到此。 2020-1-29 凌晨00:46 首先看了后台接口,比如说查询商品。直接上代码: list传具体实现是直接sql语句查询数据库,这在商品单一,且商品比较少的情况下是没问题的,但,如果放
阅读全文
posted @ 2020-01-28 00:48
Jason_LZP
阅读(135)
推荐(0)