将来的你
一定会感谢现在拼命努力的自己

Redis Queue如何执行队列任务

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis提供五种数据类型:string,hash,list,set及zset(sorted set)。

利用Redis可以很方便的实现一个任务队列。

队列的基本功能:

1、立即执行;yes

2、延迟执行;yes

3、保证至少执行一次;yes

4、必须执行且最多执行一次;no

用到的数据结构:

list、Sorted sets

延迟执行的机制:

1、先把数据放入SortedSets类型的queues:queue_000:delayed中

2、在执行pop的时候,执行lua脚本,把SortedSets类型的queues:queue_000:delayed 中可以执行的数据rpush到list类型的queues:queue_000中

保证执行成功的机制:

1、把要执行的数据先放入SortedSets类型的queues:queue_000:reserved中

2、在执行pop的时候,执行lua脚本,把SortedSets类型的queues:queue_000:reserved 中可以执行的数据rpush到list类型的queues:queue_000中
3、任务执行成功,从SortedSets类型的queues:queue_000:reserved中执行删除预存的数据

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@3yyy.top。文章观点不代表本站立场。本站原创内容未经允许不得转载:三叶运维 » Redis Queue如何执行队列任务
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏