package com.peidw.ctpsequence.service; import com.peidw.ctpsequence.SequenceService; import com.peidw.framework.response.Response; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.jedis.JedisConnection; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.support.atomic.RedisAtomicLong; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @Component("sequenceService") public class SequenceServiceImpl implements SequenceService { private Logger log= LoggerFactory.getLogger(SequenceServiceImpl.class.getName()); /* @Autowired private StringRedisTemplate stringRedisTemplate; */ @Autowired private RedisTemplate<String, Sequence> redisTemplate; @Autowired private StringRedisTemplate stringRedisTemplate; public SequenceServiceImpl(){ log.info("--------------------------------------------SequenceServiceImpl()"); } @Override public Response<Long> generate(String key) { log.info("---------------------------generate "+key); Response<Long> response = new Response<Long>(); RedisAtomicLong counter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory()); counter.getAndAdd(1); counter.expire(1, TimeUnit.DAYS); long x1=counter.longValue(); log.info("---------------------------generate "+key+"----------value="+x1); response.setResult(x1); return response; } @Override public Response<Long> generate(String key, int increment) { log.info("---------------------------generate "+key); Response<Long> response = new Response<Long>(); RedisAtomicLong counter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory()); counter.getAndAdd(increment); counter.expire(1, TimeUnit.DAYS); long x1=counter.longValue(); log.info("---------------------------generate "+key+"----------value="+x1); response.setResult(x1); return response; } }
springboot data redis序列自增
最新推荐文章于 2024-07-17 10:02:38 发布