sIsMember('question:vote:' . $questionId, $userId);"를 사용하여 반복 투표를 금지합니다."/> sIsMember('question:vote:' . $questionId, $userId);"를 사용하여 반복 투표를 금지합니다.">

>백엔드 개발 >PHP 문제 >PHP에서 반복투표를 금지하는 방법

PHP에서 반복투표를 금지하는 방법

藏色散人
藏色散人원래의
2021-07-19 11:02:081784검색

PHP에서 반복 투표를 금지하는 방법: 먼저 투표를 세트에 넣은 다음 "$redis->sIsMember('question:vote:' . $questionId, $userId);"를 사용하여 반복 투표를 금지합니다. 그냥 투표하세요.

PHP에서 반복투표를 금지하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP에서 반복 투표를 금지하는 방법은 무엇입니까?

실제 투표든 온라인 투표든 유권자의 신원의 고유성이 보장되어야 합니다.

일반적으로 우리는 투표를 저장소에 저장하지만 데이터베이스에서 쿼리하기에는 확실히 너무 느립니다. 이제 redis(http://redis.io)를 사용하여 세트에 넣을 수 있습니다.

아래에서는 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 비디오 튜토리얼"

위 내용은 PHP에서 반복투표를 금지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.