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
  • 相关阅读:
    CSS——实现图像远距离翻转效果
    《精通CSS》一个下拉菜单的例子
    将博客搬至CSDN
    44个Java代码性能优化总结
    QRCode 二维码生成
    Linux命令
    spring
    ajax 学习总结
    Servlet+Ajax实现搜索框智能提示代码
    搜索框智能提示
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9300231.html
Copyright © 2011-2022 走看看