新聞中心
??為了更好的用戶體驗,很多網(wǎng)站的開發(fā)者希望通過控制用戶的評論權(quán)限來維護(hù)網(wǎng)站的秩序,實現(xiàn)此功能用到Redis服務(wù)更為方便、高效,這里給出一種可行的方案,來實現(xiàn)用戶評論權(quán)限的控制。

??在Redis中創(chuàng)建一個集合,其中存放各評論模塊ID和對應(yīng)觸發(fā)冷卻時間的鍵值對,例如:
SADD SetCommentCooldown 1 1500
SADD SetCommentCooldown 2 1800
SADD SetCommentCooldown 3 3000
其中1,2,3代表不同模塊,1500,1800,3000代表不同評論觸發(fā)冷卻時間,單位為秒。
??緊接著,在Redis中創(chuàng)建一個哈希表,以存儲所有模塊上次評論時間スト。表中字段包括(模塊ID,評論時間),例如:
HSET HashCommentTime 1,1530232686
HSET HashCommentTime 2,1530233286
HSET HashCommentTime 3,1530233886
其中1530232686,1530233286,1530233886代表模塊1,2,3上次評論的時間戳。
??根據(jù)以上數(shù)據(jù),我們就可以通過代碼實現(xiàn)控制用戶的評論權(quán)限了。我們在服務(wù)端驗證模塊ID,并查看上次評論時間,如果在冷卻時間范圍內(nèi)則拒絕用戶評論,更新本次評論時間戳,例如:
//獲取模塊冷卻時間
int cooldownTime = Integer.valueOf(jedis.get("SetCommentCooldown:" + moduleId);
//獲取上次評論時間
Long lastTimeStamp = jedis.hashGet("HashCommentTime", moduleId);
//判斷是否超過冷卻時間
if (System.currentTimeMillis() - lastTimeStamp
//拒絕評論
system.out.println("Your comment has been rejected due to cooldown time");
}else{
//更新本次評論時間戳
jedis.hashSet("HashCommentTime", moduleId,System.currentTimeMillis());
//允許用戶留言
system.out.println("Leave a comment success");
}
??通過Redis服務(wù),實現(xiàn)在服務(wù)端對用戶的評論權(quán)限進(jìn)行控制,可以有效避免網(wǎng)站被某些用戶惡意、大量發(fā)表評論,從而維護(hù)良好的秩序,提升用戶體驗。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計,高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
本文標(biāo)題:Redis控制用戶評論權(quán)限更好的用戶體驗(redis限制用戶評論數(shù))
地址分享:http://www.dlmjj.cn/article/coigsgh.html


咨詢
建站咨詢
