java用redis处理并发_如何利用Redis分布式锁处理高并发?

如何利用Redis分布式锁处理高并发?

一、添加项目依赖

org.springframework.boot

spring-boot-starter-data-redis

二、配置文件

spring:

#Redis配置

redis:

host: localhost

password: 123456

三、模拟 抢购商品 的 Service 层

接口类

/**

* @author 刘路生

*/

public interface SellService {

/**

* 根据商品ID抢购商品并且返回商品的抢购详情

* @param productId

* @return

*/

String orderGoods(String productId);

/**

* 根据商品ID查询商品抢购详情

* @param productId

* @return

*/

String queryGoods(String productId);

}

实现类

@Service

@Slf4j

/**

* @author 刘路生

*/

public class SellServiceImpl implements SellService {

@Autowired

private RedisLock redisLock;

/**

设置超时时间10秒

*/

private static final int TIMEOUT = 10*1000;

/**

* 例如国庆大甩卖 图书大甩卖 库存 1000 件

*/

/**

* 库存

*/

static Map products;

/**

* 库存余量

*/

static Map stock;

/**

* 抢购成功者信息

*/

static Map orders;

static {

products = new HashMap<>();

stock = new HashMap<>();

orders = new HashMap<>();

products.put("book", 1000);

你可能感兴趣的:(java用redis处理并发)