avatar

正进一步

只有喜欢,才会全情投入,才会成功!!!

不关注架构设计细节的程序员不是一个好架构师

  • Home
  • Tags
  • Categories
  • Archives
  • 2018寄语
Redis在秒杀场景中的应用_限流_库存扣减_异步下单

引用自:http://geek.csdn.net/news/detail/246932
Redis作用: 限流库存扣减异步下单

1
2
3
4
"goodsId" : {
"Total": 100
"Booked": 100
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
local n = tonumber(ARGV[1])
if not n or n == 0 then
return 0
end
local vals = redis.call("HMGET", KEYS[1], "Total", "Booked");
local total = tonumber(vals[1])
local blocked = tonumber(vals[2])
if not total or not blocked then
return 0
end
if blocked + n <= total then
redis.call("HINCRBY", KEYS[1], "Booked", n)
return n;
end
return 0
支付宝防并发方案之一锁二判三更新

引用自:http://www.jianshu.com/p/fdde21b89924
这里写图片描述

1
2
3
4
5
6
7
8
9
10
//第1步锁当前支付单
PaymentInfo resultPaymentInfo = commonPayCoreService
.queryPaymentForUpdate(createPaymentInfo.getId());
if (resultPaymentInfo.isFinalStatus()) {
//第2步,判断当前支付单状态,如果是终态,则直接返回
//不做任何更新
return resultPaymentInfo;
}
//第3步更新当前支付单状态到终态,并完成相关业务逻辑(支付成功)
payCoreService.updateRequestResult(payChannelResult);

Group_By和Having_Where_Order_by语句的执行顺序

Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by

首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数),

然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组
接着系统根据Having关键字后面指定的筛选条件,将分组视图后不满足条件的记录筛选掉,最后按照Order By语句对视图进行排序,这样最终的结果就产生了。
在这四个关键字中,只有在Order By语句中才可以使用最终视图的列名

Redis分布式锁的正确实现方式Java

来自:https://mp.weixin.qq.com/s/qJK61ew0kCExvXrqb7-RSg

互斥性。在任意时刻,只有一个客户端能持有锁。
不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。
具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。
解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。

程序员进阶乐观锁与悲观锁
引自于:https://www.toutiao.com/a6491604587517051406/

乐观锁

乐观锁:顾名思义总是乐观的认为这个数据没有在同一时间被其他人操作变更
实现:CAS(compare and set)
优点:吞吐量高,适用于数据冲突相对较少的场景
缺点:受限于外部系统,可能会引起脏读,且在数据冲突很大的场景下,性能反而可能更低

内存实现CAS/ABA/AtomicStampedReference/; 数据库乐观锁实现:update goods set num= newnum, version = oldversion+1 where version = oldversion;

悲观锁:

内存:lock,syncrhoized是一种独占锁.
数据库: select…for update;但是: select…for update不会阻塞select的查询。

AI技术能让老板更好地监督你

这里写图片描述
在日常生活中,我们与 AI 可能有多次交互机会,但其中许多交互我们自己可能都没意识到。人工智能已经嵌入到应用非常广泛的一些消费技术中,许多消费者也都没注意到。因此,要说人工智能为现代办公注入了更强大的功能自然也不足为奇。以企业为重点的人工智能技术能够将老板和员工的关系引导向一个更有趣的方向,并且这一转型目前已经开始发生。