1. 程式人生 > >通過Redis實現限制指定時間內的操作次數

通過Redis實現限制指定時間內的操作次數

限制一個小時內訪問次數不超過5次

        if(jedisCluster.llen("userid")>=5 && System.currentTimeMillis() - 
                Long.parseLong(jedisCluster.lindex("userid",4))<=3600*1000){
            //禁止訪問
        }else{
            jedisCluster.lpush("userid",System.currentTimeMillis()+"");
            //訪問
        }

通過redis的list資料型別,每次訪問通過lpush命令將當前使用者id作為鍵,當前系統時間作為值存入redis。

每次訪問要進行判斷,通過llen命令判斷存入資料個數是否大於5,並且通過lindex命令取出倒數第五個資料,即訪問時間。

比較當前時間與第五次訪問時間的差值是否大於一個小時,如果大於則禁止訪問,否則允許訪問。