思路:点击游戏重新开始 使用mysql先读取数据库里面的名单,然后存到redis中
点击筛选幸运儿 使用spop随机删除一个名单,并且得到删除的名字,存到(是redis的list)list,将删除名单,以及抽中的所有名单list都传递过来
点击后退一步 使用lpop(左删)得到并删除抽中大名单中,最新的名字,然后重新写入大名单,
使用idea和VSCode,所以需要跨域 还有配置redis地址,以及依赖的,我就没放上来
html代码
document 随机点名
剩余人数 0
已经中奖的幸运儿有(放入到 list 集合中 )
主持人:, 性别: 年龄: -- 用 hash 存。
后台关键代码
package com.guominglei.controller; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.guominglei.bean.Redisa; import com.guominglei.bean.RedisaExample; import com.guominglei.service.RedisaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import redis.clients.jedis.JedisPool; import java.util.*; @CrossOrigin(origins = "*")//跨域注解 @RestController @RequestMapping("/api/redisa") public class RedisaController { @Autowired(required = false) private RedisaService redisaService; @Autowired private JedisPool jedisPool; @RequestMapping("/houtui") public Map houtui() { Map map = new HashMap(); //String name = jedisPool.getResource().lindex("lucky", 0);//得到最新的被抽中名字 String name = jedisPool.getResource().lpop("lucky");//得到且删除最新的被抽中名字 rpop右删 jedisPool.getResource().sadd("redisa",name);//重新写入大名单 Listlucky = jedisPool.getResource().lrange("lucky", 0, -1);//查询当前的所有中奖列表 Long redisa = jedisPool.getResource().scard("redisa");//重新得到剩余的人数量 map.put("code", 200); map.put("msg", "后退成功"); map.put("redisa",redisa); map.put("lucky",lucky); return map; } @RequestMapping("/del") public Map del() { Map map = new HashMap(); String name= jedisPool.getResource().spop("redisa");//获取随机删除(抽取)的值 jedisPool.getResource().lpush("lucky",name);//创建list存储抽中的名字 Long redisa = jedisPool.getResource().scard("redisa");//得到剩余的人数量 List lucky = jedisPool.getResource().lrange("lucky", 0, -1);//查询所有中奖列表 System.out.println("名单"+lucky); map.put("code", 200); map.put("msg", "随机删除成功"); map.put("data",name);//传递当前抽中的名字 map.put("redisa",redisa);//传递剩余人的数量 map.put("lucky",lucky);//传递所有中奖名单 return map; } @RequestMapping("/addRedis") public Map addRedis() { Map map = new HashMap(); List redisas = redisaService.selectByExample(null);//得到数据库的值 jedisPool.getResource().ltrim("lucky",1,0);//删除已经抽中的名单 for (int i=0;i host = jedisPool.getResource().hgetAll("host"); System.out.println("主持人"+host); map.put("code", 200); map.put("msg", "添加redis成功"); map.put("redisa",redisa); map.put("host",host); return map; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)