通過 Redis 定時執行指令碼

CrazyZard發表於2019-09-27

之前我在簡書上寫過 通過監聽redis的key失效事件,來定時進行業務邏輯操作。具體我這不在重複說明了-傳送門

第一種方式由於很吃Redis的穩定性,萬一Redis的服務可不用那麼,將有一部分的資料丟失,所以改進一下Redis使用方式-有序集合。

  1. 加入佇列
    const LISTEN_REDIS_NAME = 'eeop:axb:bind_log';//定時解綁做判斷處理
    const AUTO_TIMEOUT = 60;//自動解綁60s
    //加入佇列 有序佇列
    $this->redis::zadd(self::LISTEN_REDIS_NAME, time() + self::AUTO_TIMEOUT, $this->bind_id);

    2.解綁服務

    $list = $this->redis::ZRANGEBYSCORE(self::LISTEN_REDIS_NAME,0,time());
    foreach ($list as $value){
        $this->redis::zrem(self::LISTEN_REDIS_NAME, $value);
    }

    PS:之後要是資料量大的話 可以通過叢集的方式的進行穩定擴容

本作品採用《CC 協議》,轉載必須註明作者和本文連結

快樂就是解決一個又一個的問題!

相關文章