redis数据类型综合案例(一)
redis数据类型案例
-
案例一
-
业务场景:人工智恩领域的语音识别与自动对话是未来服务业机器人应答呼叫体系中的重要技术,百度自研用户评价语音识别服务,免费开放给企业使用,同时训练百度自己的模型,现在对测试用户的使用行为进行限速,限制每个用户每分钟最多发起10次调用
-
解决方案
-
设计计数器,就调用次数,用于控制业务执行c次数,以用户id作为key,使用次数作为值
-
在调用前获取次数,判断是否超过限定次数,不超过限定次数的情况下,每次调用计数+1,业务调用失败,计数-1
-
为计数器设置声明周期为指定周期,例如1秒/分钟,自动清空周期内使用次数
-
-
具体操作
-
-
解决方案改良
-
取消最大值的判定,利用incr 操作超过最大值抛出异常的形式替代每次判断是否操作最大值
-
判断是否为nil
-
如果是,设置为Max次数
-
如果不是,计数器+1
-
业务调用失败,计数器-1
-
-
遇到异常即+操作超过上限,视为使用达到上限
-
具体操作
-
-
-
-
redis应用场景
-