springboot data redis序列自增

来源:互联网 发布:淘宝店铺排名怎么优化 编辑:程序博客网 时间:2024/06/07 06:30
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;   }}
0 0
原创粉丝点击