php禁止重復投票的實現方法:首先把投的票放入set里;然后通過“$redis->sIsMember('question:vote:' . $questionId, $userId);”等方法實現禁止重復投票即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php怎么禁止重復投票?
無論是現實投票,還是網絡投票,都要保證投票者身份的唯一性。
一般我們會把投的票放入存儲中,但是放到數據庫里查詢起來顯然太慢了,而現在有了redis(http://redis.io),就可以把它放到set里了。
下面我用php代碼來演示這一過程,其它語言類同
$userId = '111'; $questionId = '222'; // 用戶111向問題222投票,那么我們把222的userId放到名為question:vote:111的set里 $redis->sAdd('question:vote:' . $questionId, $userId); // 判斷222用戶是否對111問題投過票了,只需判斷111是否被包含在question:vote:111的set里 $isVoted = $redis->sIsMember('question:vote:' . $questionId, $userId); // 我們還可以取消投票,只需要從set里移除這個元素 $redis->sRem('question:vote:' . $questionId, $userId);
所有的一切都在內存中進行,非常快速.
推薦學習:《PHP視頻教程》