「Redis學習筆記」生存週期

1. expire; persist

127.0.0.1:6379> set session:29e3d uid1314
OK
127.0.0.1:6379> expire session:29e3d 900
(integer) 1
127.0.0.1:6379> del session:29e3d
(integer) 1
127.0.0.1:6379> expire session:29e3d 900
(integer) 0
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> expire foo 20
(integer) 1
127.0.0.1:6379> ttl foo
(integer) 15
127.0.0.1:6379> ttl foo
(integer) 7
127.0.0.1:6379> ttl foo
(integer) 2
127.0.0.1:6379> ttl too
(integer) -2
127.0.0.1:6379> ttl foo
(integer) -2
127.0.0.1:6379> get foo
(nil)
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> expire foo 20
(integer) 1
127.0.0.1:6379> persist foo
(integer) 1
127.0.0.1:6379> ttl foo
(integer) -1
如果使用watch命令檢測了一個擁有生存時間的鍵,該鍵時間到期自動刪除並不會被watch命令認爲該鍵被改變。

2. 限制一分鐘內只能訪問100次

$isKeyExists = exists rate.limiting:$IP 
if $isKeyExists is 1 
    $times = incr rate.limiting:$IP 
    if $times > 100 
        print the times of visit beyond the limit, please try it again for mins!
        exit 
else 
    multi 
    incr rate.limiting:$IP 
    expire $keyName, 60 
    exec
$isKeyExists = exists rate.limiting:$IP 
if $isKeyExists is 1 
    $times = incr rate.limiting:$IP 
    if $times > 100 
        print the times of visit beyond the limit, please try it again for mins!
        exit 
else 
    multi 
    incr rate.limiting:$IP 
    expire $keyName, 60 
    exec  

$listLength = llen rate.limiting:$IP 
if $listLength < 10 
    lpush rate.limiting:$IP, now() 
else 
    $time = lindex rate.limiting:$IP, -1 
    if now() - $time < 60 
        print please try it again for several minus 
    else 
        lpush rate.limiting:$IP, now()
        ltrim rate.limiting:$IP, 0, 9



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章