数据类型-案例:按次结算的服务控制| 学习笔记

简介: 快速学习数据类型-案例:按次结算的服务控制

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-案例:按次结算的服务控制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13395


数据类型-案例:按次结算的服务控制

 

内容介绍

一、数据类型实践案例

二、Tips16

 

一、数据类型实践案例

业务场景

人工智能领域的语义识别与自动对话将是未来服务业机器人应答呼叫体系中的重要技术,百度自研用户评价语义识别服务,免费开放给企业试用,同时训练百度自己的模型。

现对试用用户的使用行为进行限速,限制每个用户每分钟最多发起10次调用五个类型都学习完了,做一个综合的分析,对于现在这个社会来说,人工智能发展较快,自然是别语言未来空间比较大,像现在的拟合机器人特别人性化,让机器人用自然语言处理数据,帮我们快速完成繁重的工作,现在很多公司都有这一类型的自然语言,我们可以去申请使用,然后有次数限制,做这样一个限制的管理服务控制。

这个控制服务就是我们向服务器发起调用,在规定次数是可以实现的,但是到达了指定次数就不会放行了,要做一个次数控制,很容易想到的就是计数器,可以实现,在加之前进行一个判断,判断是否超次数,从而决定是否放行。

image.png

解决方案
●设计计数器,记录调用次数,用于控制业务执行次数。以用户id作为 key,使用次数作为 value

●在调用前获取次数,判断是否超过限定次数
不超过次数的情况下,每次调用计数+1
业务调用失败,计数-1
●为计数器设置生命周期为指定周期,例如1秒/分钟,自动清空周期内使用次数

然后记录一个值,不停的加,不超过次数的情况下,每次调用计数+1,业务调用失败,计数-1,然后我们就需要设置一个生命周期,到达了一定次数就进行清空,这样就OK了,用这个方案就可以达到效果,我们就需要用这个id创建一个key,然后判断key不存在,进行一个加一操作,同时设定生命周期为60秒,如果下一次过来进行判断发现非空,那么就加一,反复操作后会变成10,这个时候再去调用,判断发现已经到达了10,那么就拒绝调用,终止掉,回答一个信息表明情况。

接下来进行操作,获取get 415,setex 415 60 1,第二次过来get 415,increase 415,然后一直获取重复,到达10之后,get 415,超过了使用次数,然后在到达了时间后,就会发现变成了nil,就可以反复走这个过程,这样就可以做这个通知了,这样方案就解决了。

image.png

解决方案改良
●取消最大值的判定,利用 incr 操作超过最大值抛出异常的形式替代每次判断是否大于最大值

●判断是否为 nil,
如果是,设置为 Max 次数
如果不是,计数+1
业务调用失败,计数-1

●遇到异常即+操作超过上限,视为使用达到上限

这里有一个问题,对于判断这个地方,每次判断,耗费了资源跟时间,我们在到达限制时再去取消,利用incr操作超过最大值抛出异常的形式替代每次判断是否大于最大值,然后到达了最大值会报错。

接下来,我们就使用最大值减去执行次数,生命周期不变,还是继续增加,到达了我们设定的最大值,就报错,然后这个时候,再进行判断是否ok。

然后get 415,setex 415 60 9223372036854775797,设定最大值,get 415,然后 incr,重复,到达十次,超范围,就会溢出,报错,然后此时判断,影响客户体验,免去了每次做判断的情况。

image.png


二、Tips16

Redis 应用于限时按次结算的服务控制。

相关文章
|
7月前
|
小程序 物联网 程序员
【社区每周】“小程序商品”能力接口字段更新(10.23-10.29)
【社区每周】“小程序商品”能力接口字段更新(10.23-10.29)
73 10
|
5月前
三类代码协同模式问题之对账方式主要类型然后解决
三类代码协同模式问题之对账方式主要类型然后解决
|
6月前
|
存储 Cloud Native 安全
阿里云目前优惠券最新种类、金额及使用区别参考
目前阿里云为用户推出了无门槛优惠券,上云抵扣金、算力补贴优惠券、上云礼包等不同种类的优惠券,助力更多用户优惠上云,但是这些优惠券在领取和使用规则上是不同的,本文为大家介绍目前阿里云的各种优惠券领取和使用注意事项,以供大家了解自己能领取或者申请哪些优惠券,在使用过程中需要注意什么。
阿里云目前优惠券最新种类、金额及使用区别参考
|
4月前
|
人工智能 JSON 前端开发
ProChat 1.1 使用问题之用 chatRef 获取 ProChat 实例以实现程序化控制,如何操作
ProChat 1.1 使用问题之用 chatRef 获取 ProChat 实例以实现程序化控制,如何操作
|
5月前
|
前端开发 开发工具 数据库
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
|
5月前
|
供应链 搜索推荐
三类代码协同模式问题之阿里商旅账单系统支持企业自定义展示问题如何解决
三类代码协同模式问题之阿里商旅账单系统支持企业自定义展示问题如何解决
|
6月前
|
存储 分布式计算 DataWorks
MaxCompute产品使用合集之要存储用户的下单所有产品,然后查询时要进行产品分组的,一般这种字段要使用ARRAY还是MAP
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7月前
|
调度 数据处理 运维
公共日历调度及数据筛选:更符合业务场景的数据产出方式!
在证券行业,数据处理和分析是核心任务之一,对于提供决策支持和市场分析至关重要。由于股市的特殊性,不同的市场(如沪深、港股等)拥有各自的交易日历,这意味着在非交易日,如周末或特定节假日,市场是关闭的,不产生任何交易数据。因此,证券行业的数据处理任务需紧密跟随这些交易日历的规律进行调度,以确保数据的准确性和实时性。
113 1
公共日历调度及数据筛选:更符合业务场景的数据产出方式!
|
存储 弹性计算 负载均衡
阿里云新增新老用户多场景组合购,多种业务场景可选,灵活选择解决方案
很多购买阿里云产品的用户在购买云服务器产品的同时往往还需要搭配购买其他云产品,例如备案管家服务、对象存储服务、负载均衡CLB、无影云桌面等,为此,阿里云新增了组合购套餐,最低仅需1532.04元起。
阿里云新增新老用户多场景组合购,多种业务场景可选,灵活选择解决方案
|
机器学习/深度学习 Java API
股票自动交易系统开发程序设计(源码示例)
股票自动交易系统开发程序设计(源码示例)