package com.jt.redis;
import redis.clients.jedis.Jedis;
import java.lang.reflect.Member;
import java.util.Set;
public class VoteDemo01 {
public static void main(String[] args) {
String activityId = "1001";
String userId1 = "user01";
String userId2 = "user02";
String userId3 = "user03";
//执行投票的操作
Boolean flag = doVote(activityId,userId1);
System.out.println(flag);
flag = doVote(activityId,userId1);
System.out.println(flag);
doVote(activityId,userId2);
doVote(activityId,userId3);
//获取投票的总数
Long along = doCount(activityId);
System.out.println(along);
//获取投票的用户
Set<String> members = doMembers(activityId);
System.out.println(members);
}
private static Set<String> doMembers(String activityId) {
//连接数据库
Jedis jedis = new Jedis();
//2.查询用户
Set<String> smembers = jedis.smembers(activityId);
//3.关闭资源
jedis.close();
return smembers;
}
//获取总票数
private static Long doCount(String activityId) {
//1.建立连接
Jedis jedis = new Jedis("1921.68.126.128",6379);
//获取总票数
Long scard = jedis.scard(activityId);
jedis.close();
return scard;
}
//进行投票
private static Boolean doVote(String activityId, String userId) {
//1.建立连接
Jedis jedis = new Jedis();
//检查是否投过票
Boolean flag = jedis.sismember(activityId, userId);
if(flag){ //如果是真 就是投过票了 代码块执行取消
jedis.srem(activityId, userId);
jedis.close();
return flag;
}
//如果是false,第一次投票
jedis.sadd(activityId, userId);
jedis.close();
return flag;
}
}
在很多系统中设计中,都会有一个活动设计,开启一个活动之前,可以对这个活动的支持力度先进行一个调查,例如基于这个活动设计一个投票系统