一文带你了解Redis秒杀应用场景
码农编程进阶笔记
共 2523字,需浏览 6分钟
·
2021-08-29 17:56
redis 实现消息队列核心简单版本
$key = 'quque';
/**
* 秒杀商品数量有限,预先存储到消息队列
*/
public function qnquque() {
for($i = 1 ; $i<=5 ;$i++) {
$redis->lpush($key,$i);
}
}
/**
* 这里省略掉业务逻辑处理,默认业务逻辑处理完,出队列
*/
public function dequque() {
$redis->rpop($key);
/**
* 这里开始商品购买后的业务逻辑处理
*/
}
消息队列是防止超买超卖很好的一种解决方案,要实现消息队列的高级功能需要用到专业的消息队列工具例如(rabbitmq).用户Redis 用户redis实现消息队列还是有一些缺点的,可以自行查找文章补充。这边不一一概述。最大问题还是分布式集群的问题。
Redis 乐观锁实现秒杀功能
它的优点如下:
消息队列对内存消耗较大,10000个请求,需要操作10000 出队列。容易造成内存资源瞬间爆棚
使用乐观锁的逻辑,CPU相对来说消耗较低、内存资源占用少
$redis = new redis();
$result = $redis->connect('127.0.0.1', 6379);
$cachekey = $redis->get("cachekey");
$number = 100; //抢购数量
if($cachekey<$number){
$redis->watch("cachekey");
$redis->multi();
//设置延迟,方便测试效果。
sleep(5);
//插入抢购数据
$redis->hSet("cachekeyList","user_id_".mt_rand(1, 9999),time());
$redis->set("cachekey",$cachekey+1);
$result = $redis->exec();
if($result){
$cachekeyList = $redis->hGetAll("cachekeyList");
echo "恭喜".$cachekeyList."抢购成功!<br/>";
}else{
echo "再接再厉";
exit;
}
}
结尾
评论
一文带你了解文字识别
摘要:本文主要介绍文字检测和文字识别作为计算机视觉一部分的重要性,基本知识,面临的挑战,以及部分最新的成果。
人类在认识了解世界的信息中91%来自视觉,同样计算机视觉是机器认知世界的基础,也是人工智能研究的热点,文字识别也是人工智能的重要研究方向。在我们生活当中,文字是无处不在的,我们的衣食住行都是离不开它的。
文字的价值
首先,文字并非自然产生,而是人类特有的造物,是高层语义信息的载体。文字从整个文化的角度来讲也是非常重要的,人类的文明离不开文字,文字是我们学习知识、传播信息、记录思想很重要的载体,没有文字人类的文明无从谈起。比如说王羲之的“兰亭序”,不只是文化作品,也是人类历史上璀璨的明珠之一;再比如诗经,通过诗经我们既
华为云开发者社区
0
一文带你了解两种Transformer文字识别方法
> 摘要:受Transformer模型的启发,目前一些学者将该结构应用到文本行识别中,以替代RNN,取得了良好的效果,如在HGA-STR和 SRN。
当前的文本行识别器为拥有更强的序列语义能力,模型多采用CNN + RNN的结构,如目前使用十分广泛的两个识别器CRNN和Aster,这些模型取得了非常好的效果。然而由于RNN只能采用串行计算,在目前大量采用并行计算设备的前提下,RNN面临着明显的速度瓶颈。若弃用RNN只使用CNN,性能往往不尽如人意。在NLP领域,Ashish Vaswan[1]等人提出的Transformer模型在语言理解相关任务上十分成功,并优于CNN和RNN效果,展现出Transformer强大的序列建模能力。
华为云开发者社区
0