之前我在簡書上寫過 通過監聽redis的key失效事件,來定時進行業務邏輯操作。具體我這不在重複說明了-傳送門。
第一種方式由於很吃Redis的穩定性,萬一Redis的服務可不用那麼,將有一部分的資料丟失,所以改進一下Redis使用方式-有序集合。
- 加入佇列
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 協議》,轉載必須註明作者和本文連結