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
  • 相关阅读:
    数据库MySQL调优实战经验总结
    Apache常见功能实战详解
    使用HeartBeat实现高可用HA的配置过程详解
    Nginx实现集群的负载均衡配置过程详解
    CentOS系统通过PXE实现批量无人值守安装
    CentOS 7 网卡命名修改为eth0格式
    Nagios 系统监控基本安装配置过程详解
    LAMP 系统服务搭建过程详解
    使用 python 管理 mysql 开发工具箱
    C++标准库string类型的使用和操作总结
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9300231.html
Copyright © 2011-2022 走看看