Redis实现简单投票系统(微服务系列)

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;
    }
}

在很多系统中设计中,都会有一个活动设计,开启一个活动之前,可以对这个活动的支持力度先进行一个调查,例如基于这个活动设计一个投票系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值