@Override public PmsSkuInfo getSkuById(String skuId) { PmsSkuInfo skuInfo=new PmsSkuInfo(); //'链接缓存 Jedis jedis = redisUtil.getJedis(); //查询缓存 String skuKey="sku:"+skuId+":info"; String skuJson = jedis.get(skuKey); if (StringUtils.isNotBlank(skuJson)){ skuInfo= JSON.parseObject(skuJson, PmsSkuInfo.class); }else { //设置分布式锁,key:"sku:" + skuId + ":lock";value:"1";"px", 10:过期时间10秒;nx:分布锁参数,只有不存在才能成功 String OK = jedis.set("sku:" + skuId + ":lock", "1", "ex", "px", 1000*10);// if (StringUtils.isNotBlank(OK)&&OK.equals("OK")){ //设置成功,有权在10秒的过期时间内访问数据库 //如果缓存中没有,查询mysql skuInfo = getSkuByIdFromDb(skuId); if (skuInfo!=null){
分布式锁实现第一种方式redis自带一个分布式锁,set ex px
最新推荐文章于 2024-06-09 20:57:16 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)