一、前言
公司要做呼叫中心,呼叫中心為了防止騷擾,需要限制使用者撥打**的頻率,比如30s只能點選一次。這樣的需求是通過redis來實現的。
二、具體實現
<?php三、redis的方法class
resourcelock
private
function getkey($resource_unique_name
)
/*** 檢查資源鎖
* @param string $resource_unique_name
* @param int $lock_second 秒
* @return array|bool
*/public
function checklock($resource_unique_name
)
return
true
; }
/*** 檢查資源鎖
* @param string $resource_unique_name
* @param int $lock_second 秒
* @return array|bool
*/public
function setlock($resource_unique_name, $lock_second = 300)
/*** 釋放鎖資源
* @pastring $lock
* @return bool
*/public
function unlock($resource_unique_name
)
}
$redis->expire($key, 60); //保持跟自然間隔時間相同 會自動延時60秒
四、收穫
<?phpecho
str_replace("world","shanghai","hello world!");
hello shanghai!
?>
PHP介面訪問頻率限制
發現網上很多限制都只是1分鐘 或者某個時間 內訪問的限制 比如1分鐘限制10次 那我在59秒的訪問了10次,然後key 又過期了,接下來1分鐘又可以訪問了 這種限制根本就不合理 所以有了我的想法 直接上 吧 param uid return bool int 檢測使用者介面訪問頻率 function...
日常 靈活的頻率限制實現
靈活的頻率限制實現 1.比如有這樣的需要,當前使用者,一分鐘限制200次,一小時限制1000次 當前ip,一分鐘限制2000次,一小時限制10000次 2.配置檔案中,key就是要限制的當前使用者的關鍵字,比如使用者郵箱或者使用者手機號 array prefix selfservice key ar...
滑動視窗實現訪問頻率限制
主要思路有兩個 以時間戳為有序集合的成員 每次請求,先使用zremrangebylex命令移除視窗外的成員 使用zrange命令獲取有序集合的成員和相應權重 使用zincrby命令對相應的成員的權重加一 使用expire命令重新設定有序集合有效期 對獲取到的有序集合的成員的權重求和,並判斷是否超過閾...