实现抽奖功能的具体思想:

使用客户端jedis连接到redis,使用redis中的set数据类型,set数据类型不可重复的,保证了参加抽奖的人的唯一性。pop()时得到的数据是随机的不固定的,符合抽奖的随机性,所以使用redis中set数据类型实现了抽奖功能。

1.创建maven工程

2.引入依赖

   <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.1</version><!--版本号可根据实际情况填写--></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.2</version></dependency>

3.新建util包,创建JedisFactory类主要是配置线程池的参数,可以通过JedisFactory获得jedis连接

public class JedisFactory {private static JedisFactory jedisFactory;private JedisPool jedisPool;private JedisFactory(){super();}public static JedisFactory getInstance(){if(jedisFactory==null)jedisFactory=new JedisFactory();return jedisFactory;}public JedisPool getJedisPool(){if(jedisPool==null){GenericObjectPoolConfig config=new GenericObjectPoolConfig();jedisPool=new JedisPool(config,"地址",6379,3000超时断开链接,"密码XXX");//}return jedisPool;}}

3.创建service,具体实现逻辑

public class JedisService {private  JedisPool jedisPool= JedisFactory.getInstance().getJedisPool();private String lottoryKey="userkey";private Jedis jedis=jedisPool.getResource();public void  addUser(String  ...user){if(user==null||user.length==0)System.out.printf("至少添加一个用户!");for(String u:user)jedis.sadd(lottoryKey,user);}public void clearLottory(){jedis.del(lottoryKey);}public Set<String> getUSer(Integer n){if(n==null||n==0){System.out.println("n必须大于0");}long count=jedis.scard(lottoryKey);if(n>count){System.out.printf("获奖人数不能大于参与抽奖的人数!");}return jedis.spop(lottoryKey,n);}
}

测试类

public class JedisTest {public static void main(String [] args){   JedisPool jedisPool= JedisFactory.getInstance().getJedisPool();Jedis jedis=jedisPool.getResource();JedisService jedisService=new JedisService();Random random=new Random();//初始化奖池for(int i=0;i<10;++i){String a=""+random.nextInt(1000);jedisService.addUser(a);}//抽奖Scanner sc=new Scanner(System.in);while(true){System.out.println("请输入抽奖人数:");while(true){int s= sc.nextInt();if(s==0){jedisService.clearLottory();break;}Set<String> set=  jedisService.getUSer(s);for(String u:set){System.out.println(u);}}}}
}

Jedis实现抽奖功能相关推荐

  1. 给你30秒的时间,你会用Excel制作出一个抽奖功能吗?

    一说到抽奖,大家都是想到最近的"支付宝锦鲤信小呆",但是今天跟大家谈论的不是这个,而是:你会用Excel制作抽奖功能吗?可能大家都不知道Excel有这么多的神技能,但是你不知道的还 ...

  2. JSP常用内置对象及抽奖功能

    jsp内置对象 JSP九个内置对象分别为:request,response,session,application,config,exception,page,out,pageContext 常用五个 ...

  3. IVX低代码平台开发——微信小程序实现抽奖功能

    写在前面 通过利用可视化编程实现微信小程序的抽奖功能,带大家初步了解 iVX 的强大之处. 文章目录 写在前面 iVX开发 抽奖功能实现 iVX开发 基本介绍 iVX是一个 "零代码&quo ...

  4. php 抽奖活动_PHP实现活动人选抽奖功能的方法

    这篇文章主要介绍了PHP实现活动人选抽奖功能,随机抽取指定人数,依次列举被抽中的人名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文介绍情景为活动人选抽奖,通过简单随机抽取指定人数,依次列举被 ...

  5. java抽奖_JAVA实现用户抽奖功能(附完整代码)

    需求分析 1)实现三个基本功能:登录.注册.抽奖. 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号 ...

  6. Java实现抽奖功能

    这篇文章主要为大家详细介绍了Java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现抽奖功能的具体代码,供大家参考,具体内容 ...

  7. php jq实现抽奖,php 实现抽奖功能

    最近做的小程序有一个抽奖功能,这里记录下实现抽奖功能的具体流程 前提: 有一组奖品数据如下 id 奖品(prize) 概率(rate) 数量(num) 已抽数量(prize_num) 1 一等奖 10 ...

  8. php9宫格抽奖程序_PHP实现抽奖功能实例代码

    在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...

  9. java实现抽奖游戏,java实现抽奖功能解析

    本文实例为大家分享了java实现抽奖功能的具体代码,供大家参考,具体内容如下 抽一个: 输入抽奖人数,生成随机数字进行抽奖. 比如:楼主抽幸运儿送游戏,选择前100楼抽取一个幸运儿. import j ...

最新文章

  1. 如何在Windows系统上使用Object Detection API训练自己的数据?
  2. CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)
  3. 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作
  4. 跟ArthurXF学从雅虎抓取股票数据的方法
  5. 使用qsort()和bsearch()函数对值和字符串进行排序和查找
  6. 两台电脑之间串口传输文件
  7. 【狂神说Java】Spring Boot笔记
  8. 该网页无法正常运作 目前无法处理此请求。 HTTP ERROR 500
  9. python3+itchat实战
  10. 小猿圈python之练习小例子
  11. 计算机excel必备知识,2017职称计算机考试EXCEL知识点:创建图表
  12. DCGAN论文改进之处+简化代码
  13. 说出我国的超级计算机的发展历程,中国超级计算机发展史
  14. 【Hard to Park】Estimating Parking Difficulty at Scale
  15. windows如何修改复制粘贴与剪切快捷键?
  16. Raptor实践参考:求圆周长
  17. Win10家庭版账户名变更方法
  18. The Thundering Herd accept system call
  19. 拼多多店铺所有商品API接口(整店商品列表查询接口)
  20. 光敏电阻的检测方法总结

热门文章

  1. 每个程序猿都应该知道的网站,数量有点多,请点收藏慢慢查看
  2. 编程控制仪器进行自动化测试(Visa驱动、GPIB驱动)
  3. mac os x在PC上安装
  4. day10Python文件
  5. ESOURCE_LOCKED - cannot obtain exclusive access to locked queue '2484_0_00163'
  6. iOS——知乎日报小结
  7. IE8正式版下载地址
  8. django基于python的酒店预订管理系统--宾馆管理系统-计算机毕业设计
  9. nand flash基础——基本操作
  10. 工欲善其事必先利其器(Windows)