PHP 利用 Redis Sorted Set的延时队列
延迟队列是我们在业务中经常遇到的场景,例如订单过期,定时发布,定时推送等等。 在 Zset里面,每一个成员都有一个所谓的分数:score,把当前时间作为分数,因为 Zset 是有序的,时间越小的排名越靠前。所以使用Zset作为延时队列就充分利用了score。 我们还是用订单例子来距离,如果订单超过 24 小时未付款,那…
延迟队列是我们在业务中经常遇到的场景,例如订单过期,定时发布,定时推送等等。 在 Zset里面,每一个成员都有一个所谓的分数:score,把当前时间作为分数,因为 Zset 是有序的,时间越小的排名越靠前。所以使用Zset作为延时队列就充分利用了score。 我们还是用订单例子来距离,如果订单超过 24 小时未付款,那…
Redis 本身是用来做缓存的,但是其中有一些特性是我们可以用来完成消息队列的功能,比如如果能够容忍数据的丢失,并且持久化方面要求不是很高的场景下完成任务的分布式处理。 队列的基本实现 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),而我们取出的时候可以从头部…