zoukankan      html  css  js  c++  java
  • 【redis】在spring boot2.0中使用redis的StringRedisTemplate 自动注入@Autowired

    1.使用opv.increment 达到增量的效果【判断某个用户 是第几次做这种操作】

    @RequestMapping("createCode")
    @RestController
    public class CreateCodeController {
    
        @Autowired
        StringRedisTemplate stringRedisTemplate;
    
        public static final String TEN_CODE_GLOBAL_KEY_IN_REDIS = "PISEN-CLOUD-LUNA-SECURITY-CODE-TEN-GLOBAL:";
    
    
    
        @RequestMapping("getCode")
        public UniVerResponse<String>  createCode(){
    
            String uid = "test";
            //使用hashmap实现同步锁
            //这里uid可以是
            // 1>使用者的uid,标明 同一个使用者同一时间只能有一个获取码的任务
            // 2>任务单的uid,标明 一个使用者如果有不同的任务单,可以保证一个用户的多个任务单的每一个任务单只能有一个获取码的任务
    
            synchronized(HashMapLock.getLock(uid)){
    
                UniVerResponse<String> res = new UniVerResponse<>();
                //区分用户的基础序列值
                String serialNumber = "";
    
                //1.例如:user.id是数据库自增的
                //2.例如本user想要下载防伪码,那么先取出他的id
                //3.例如id = 10L 或者用户id可以是1000L
                Long id = 99L;
                String str2 = CreateCode.fmtStringAddZero(id,3,"0");
    
                //使用redis的增量方法  达到每次用户调用这个获取码  都会次数+1
                ValueOperations<String, String> opv = stringRedisTemplate.opsForValue();
                //[key:value]  [PISEN-CLOUD-LUNA-SECURITY-CODE-TEN-GLOBAL:099   :   次数]
                String str1 = opv.increment(TEN_CODE_GLOBAL_KEY_IN_REDIS + str2, 1).toString();
    
                str1 = CreateCode.fmtStringAddZero(str1,3,"0");
    
                serialNumber = str1 + str2;
                //生成 20个不重复的code
                List<String> codeList = CreateCode.getCode(serialNumber,2000);
                for (String s : codeList) {
                    System.out.println(s);
                }
    
                res.beTrue("成功");
                return  res;
            }
        }
    View Code
  • 相关阅读:
    jquery queryBuilder过滤插件的使用
    前端跨域问题
    [BZOJ 3326] 数数
    [BZOJ 2427] 软件安装
    [BZOJ 3675] 序列分割
    [Atcoder Grand Contest 004] Tutorial
    [P2831] 愤怒的小鸟
    [Atcoder Regular Contest 065] Tutorial
    [P3806] Divide and Conquer on Tree
    [POJ 1741] Tree
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9300231.html
Copyright © 2011-2022 走看看