方式一
@Autowired
private StringRedisTemplate stringRedisTemplate;
public String getNumber(String key) {
ValueOperations<String, String> forValue = stringRedisTemplate.opsForValue();
if (stringRedisTemplate.hasKey(key)) {
Long increment = forValue.increment(key);
return increment.toString();
} else {
RedisAtomicLong redisAtomicLong = new RedisAtomicLong(key, stringRedisTemplate.getConnectionFactory());
redisAtomicLong.set(0);
redisAtomicLong.expire(10, TimeUnit.SECONDS);
Long increment = forValue.increment(key);
return increment.toString();
}
}
方式二
@Autowired
private StringRedisTemplate stringRedisTemplate;
public String getNumber(String key) {
ValueOperations<String, String> forValue = stringRedisTemplate.opsForValue();
if (stringRedisTemplate.hasKey(key)) {
Long increment = forValue.increment(key);
return increment.toString();
} else {
forValue.set(key,"10");
BoundGeoOperations<String, String> ops = stringRedisTemplate.boundGeoOps(key);
ops.expire(10, TimeUnit.SECONDS);
Long increment = forValue.increment(key);
return increment.toString();
}
}