Jedis实现抽奖功能
实现抽奖功能的具体思想:
使用客户端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实现抽奖功能相关推荐
- 给你30秒的时间,你会用Excel制作出一个抽奖功能吗?
一说到抽奖,大家都是想到最近的"支付宝锦鲤信小呆",但是今天跟大家谈论的不是这个,而是:你会用Excel制作抽奖功能吗?可能大家都不知道Excel有这么多的神技能,但是你不知道的还 ...
- JSP常用内置对象及抽奖功能
jsp内置对象 JSP九个内置对象分别为:request,response,session,application,config,exception,page,out,pageContext 常用五个 ...
- IVX低代码平台开发——微信小程序实现抽奖功能
写在前面 通过利用可视化编程实现微信小程序的抽奖功能,带大家初步了解 iVX 的强大之处. 文章目录 写在前面 iVX开发 抽奖功能实现 iVX开发 基本介绍 iVX是一个 "零代码&quo ...
- php 抽奖活动_PHP实现活动人选抽奖功能的方法
这篇文章主要介绍了PHP实现活动人选抽奖功能,随机抽取指定人数,依次列举被抽中的人名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文介绍情景为活动人选抽奖,通过简单随机抽取指定人数,依次列举被 ...
- java抽奖_JAVA实现用户抽奖功能(附完整代码)
需求分析 1)实现三个基本功能:登录.注册.抽奖. 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号 ...
- Java实现抽奖功能
这篇文章主要为大家详细介绍了Java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现抽奖功能的具体代码,供大家参考,具体内容 ...
- php jq实现抽奖,php 实现抽奖功能
最近做的小程序有一个抽奖功能,这里记录下实现抽奖功能的具体流程 前提: 有一组奖品数据如下 id 奖品(prize) 概率(rate) 数量(num) 已抽数量(prize_num) 1 一等奖 10 ...
- php9宫格抽奖程序_PHP实现抽奖功能实例代码
在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...
- java实现抽奖游戏,java实现抽奖功能解析
本文实例为大家分享了java实现抽奖功能的具体代码,供大家参考,具体内容如下 抽一个: 输入抽奖人数,生成随机数字进行抽奖. 比如:楼主抽幸运儿送游戏,选择前100楼抽取一个幸运儿. import j ...
最新文章
- 如何在Windows系统上使用Object Detection API训练自己的数据?
- CF718E Matvey‘s Birthday(状压、bfs、暴力、分类讨论)
- 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作
- 跟ArthurXF学从雅虎抓取股票数据的方法
- 使用qsort()和bsearch()函数对值和字符串进行排序和查找
- 两台电脑之间串口传输文件
- 【狂神说Java】Spring Boot笔记
- 该网页无法正常运作 目前无法处理此请求。 HTTP ERROR 500
- python3+itchat实战
- 小猿圈python之练习小例子
- 计算机excel必备知识,2017职称计算机考试EXCEL知识点:创建图表
- DCGAN论文改进之处+简化代码
- 说出我国的超级计算机的发展历程,中国超级计算机发展史
- 【Hard to Park】Estimating Parking Difficulty at Scale
- windows如何修改复制粘贴与剪切快捷键?
- Raptor实践参考:求圆周长
- Win10家庭版账户名变更方法
- The Thundering Herd accept system call
- 拼多多店铺所有商品API接口(整店商品列表查询接口)
- 光敏电阻的检测方法总结