php redis設定時間的方法:1、取消生存時間,將鍵的生存時間設為永久,是PERSIST,程式碼為【PERSIST session:captcha】;2、看一個鍵的生存時間用TTL命令,程式碼為【TTL session:captcha】。
php redis設定時間的方法:
Redis對鍵提供生存時間,在不指定生存時間時,生存時間是永久。時間到期後Redis會自動刪除這個鍵。可以用EXPIRE命令,時間單位時秒,如果一個鍵是被設為有限的生存時間,那麼在SET key進行重新賦值的時候會被再次設為永久:
SET session:captcha sd2a EXPIRE session:captcha 600
取消生存時間,將鍵的生存時間設為永久,是PERSIST:
PERSIST session:captcha
檢視一個鍵的生存時間用TTL命令,-1表示永久或者以及到期被刪除。
TTL session:captcha
在Redis的INCR,LPUSH,HSET,ZREM等命令時不會改變生存時間的。
想要精確到毫米來控制時間,就需要PEXPIRE即可,使用PTTL檢視剩餘時間。
如果想要給定一個到期的時間而不是多少秒後到期呢?就需要EXPIREAT和PEXPIREAT。EXPIREAT的引數是到期時的時間戳(秒),PEXPIREAT的引數是到期時間是時間戳(毫秒)
SET session:captcha sd2a EXPIREAT session:captcha 1399902009 PEXPIREAT session:captcha 1399902009000
應用場景一:存取頻率限制:我們限定每個使用者1分鐘只能瀏覽10個頁面。虛擬碼如下:
$isExists = EXISTS limit:user1:192.168.1.2 if($isExists){ $num = INCR limit:user1:192.168.1.2 if($num > 10){ print '超過限制' exit } }else{ MULTI INCR limit:user1:192.168.1.2 EXPIRE limit:user1:192.168.1.2 60 EXEC }
我們用了事務的原因是因為,加入在執行了INCR limit:user1:192.168.1.2之後,在執行EXPIRE limit:user1:192.168.1.2 60之前,使用者端被關閉了。那麼這個鍵和值就會被持久化儲存。且該ID終身只能存取10次了。這就太糟糕了。
想了解更多程式設計學習,敬請關注欄目!
以上就是php redis任何設定時間的詳細內容,更多請關注TW511.COM其它相關文章!