這篇文章將為大家詳細(xì)講解有關(guān)php redis設(shè)置時(shí)間的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)歡迎咨詢:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)頁制作領(lǐng)域十載,包括陽光房等多個(gè)方面擁有多年的網(wǎng)站制作經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián),為企業(yè)保駕護(hù)航。
php redis設(shè)置時(shí)間的方法:1、取消生存時(shí)間,將鍵的生存時(shí)間設(shè)為永久,是PERSIST,代碼為【PERSIST session:captcha】;2、看一個(gè)鍵的生存時(shí)間用TTL命令,代碼為【TTL session:captcha】。
php redis設(shè)置時(shí)間的方法:
Redis對(duì)鍵提供生存時(shí)間,在不指定生存時(shí)間時(shí),生存時(shí)間是永久。時(shí)間到期后Redis會(huì)自動(dòng)刪除這個(gè)鍵??梢杂肊XPIRE命令,時(shí)間單位時(shí)秒,如果一個(gè)鍵是被設(shè)為有限的生存時(shí)間,那么在SET key進(jìn)行重新賦值的時(shí)候會(huì)被再次設(shè)為永久:
SET session:captcha sd2a EXPIRE session:captcha 600
取消生存時(shí)間,將鍵的生存時(shí)間設(shè)為永久,是PERSIST:
PERSIST session:captcha
查看一個(gè)鍵的生存時(shí)間用TTL命令,-1表示永久或者以及到期被刪除。
TTL session:captcha
在Redis的INCR,LPUSH,HSET,ZREM等命令時(shí)不會(huì)改變生存時(shí)間的。
想要精確到毫米來控制時(shí)間,就需要PEXPIRE即可,使用PTTL查看剩余時(shí)間。
如果想要給定一個(gè)到期的時(shí)間而不是多少秒后到期呢?就需要EXPIREAT和PEXPIREAT。EXPIREAT的參數(shù)是到期時(shí)的時(shí)間戳(秒),PEXPIREAT的參數(shù)是到期時(shí)間是時(shí)間戳(毫秒)
SET session:captcha sd2a EXPIREAT session:captcha 1399902009 PEXPIREAT session:captcha 1399902009000
應(yīng)用場景一:訪問頻率限制:我們限定每個(gè)用戶1分鐘只能瀏覽10個(gè)頁面。偽代碼如下:
$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 }
我們用了事務(wù)的原因是因?yàn)?,加入在?zhí)行了INCR limit:user1:192.168.1.2之后,在執(zhí)行EXPIRE limit:user1:192.168.1.2 60之前,客戶端被關(guān)閉了。那么這個(gè)鍵和值就會(huì)被持久化保存。且該ID終身只能訪問10次了。這就太糟糕了。
關(guān)于php redis設(shè)置時(shí)間的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。