使用redis做一个简易的点名名单

使用redis做一个简易的点名名单,第1张

使用redis做一个简易的点名名单

思路:点击游戏重新开始 使用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);//重新写入大名单
        List lucky = 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;
    }



}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5687023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存