RedisAtomicInteger 从名字上来说就是 redis 的原子Integer 数据类型,由于其原子性,, 可用于秒杀活动物品数量的控制。
以及保证顺序生成数字。
下面示例:创建了100个线程的线程池子,submit 中的代码 相当于在一个线程的 run 方法中持续执行,
外面for 循环100 次,就是往线程池提交 100 次任务
@Autowired
private RedisTemplate redisTemplate;
@RequestMapping("/testRedisAtomicInteger")
@ResponseBody
public Object testRedisAtomicInteger() {
String ticketName = "testRedisAtomicInteger";
RedisAtomicInteger redisCount = new RedisAtomicInteger(ticketName,redisTemplate.getConnectionFactory());
// 创建 100 个线程 并发执行 increment 操作
ExecutorService pool = Executors.newFixedThreadPool(100);
for (int i = 0; i < 100; i++) {
pool.submit(() -> {
// 配额码原子变量值增加,每次增加1
for (int j = 0; j < 100; j++) {
int count =