Version 1.1 of the xsequence distributed serial number generation component released

1. Historical version

v1.0 supports DB method to generate serial number

2. New version feature description

v1.1 supports redis method to generate serial number

3. Use the tutorial

(1) How to use the API

public class RedisTest_Api {

    private com.xuanner.seq.sequence.Sequence userSeq;

    @Before
    public void setup() {

        //利用Redis获取区间管理器
        RedisSeqRangeMgr redisSeqRangeMgr = new RedisSeqRangeMgr();
        redisSeqRangeMgr.setIp("121.196.218.206");//IP[必选]
        redisSeqRangeMgr.setPort(6379);//PORT[必选]
        redisSeqRangeMgr.setAuth("123456");//密码[可选]看你的redis服务端配置是否需要密码
        redisSeqRangeMgr.setStep(10);//每次取数步长[可选] 默认:1000
        redisSeqRangeMgr.init();
        //构建序列号生成器
        DefaultRangeSequence defaultRangeSequence = new DefaultRangeSequence();
        defaultRangeSequence.setName("user");
        defaultRangeSequence.setSeqRangeMgr(redisSeqRangeMgr);
        userSeq = defaultRangeSequence;
    }

    @Test
    public void test() {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 100; i++) {
            System.out.println("++++++++++id:" + userSeq.nextValue());
        }
        System.out.println("interval time:" + (System.currentTimeMillis() - start));
    }

(2) How to use Spring

xml placement

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd" default-autowire="byName"
       default-lazy-init="false">

    <!-- 序列号步长管理器 -->
    <bean id="redisSeqRangeMgr" class="com.xuanner.seq.range.impl.redis.RedisSeqRangeMgr" init-method="init">
        <!-- IP[必选] -->
        <property name="ip" value="121.196.218.206"/>
        <!-- PORT[必选]-->
        <property name="port" value="6379"/>
        <!-- 密码[可选]看你的redis服务端配置是否需要密码-->
        <property name="auth" value="123456"/>
        <!-- 每次取数步长[可选] 默认:1000-->
        <property name="step" value="10"/>
    </bean>

    <!-- 具体使用demo -->
    <bean id="userSeq" class="com.xuanner.seq.sequence.impl.DefaultRangeSequence">
        <property name="seqRangeMgr" ref="redisSeqRangeMgr"/>
        <property name="name" value="user"/>
    </bean>
</beans>

code usage

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:redis-test.xml" })
public class RedisTest_Spring {

    @Autowired
    private Sequence userSeq;

    @Test
    public void test() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("++++++++++id:" + userSeq.nextValue());
        }
    }

}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326098990&siteId=291194637