Skip to content

Commit bd08600

Browse files
basics code for cz
id 生成策略
1 parent 69cf40b commit bd08600

3 files changed

Lines changed: 96 additions & 1 deletion

File tree

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@
4242
<artifactId>cglib</artifactId>
4343
<version>2.1_3</version>
4444
</dependency>
45-
45+
<!--redis-->
46+
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
47+
<dependency>
48+
<groupId>redis.clients</groupId>
49+
<artifactId>jedis</artifactId>
50+
<version>2.9.0</version>
51+
</dependency>
4652

4753

4854
</dependencies>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.basics.redisTest;
2+
3+
import redis.clients.jedis.HostAndPort;
4+
import redis.clients.jedis.Jedis;
5+
import redis.clients.jedis.JedisSentinelPool;
6+
7+
import java.text.SimpleDateFormat;
8+
import java.util.*;
9+
10+
/**
11+
* @PACKAGE_NAME: com.basics.redisTest
12+
* @PROJECT_NAME: JavaCode
13+
* @Date: 2018/4/19
14+
* @author: Jossc
15+
* reids id 生成策略
16+
*/
17+
public class RandomUid {
18+
private static Jedis jedis = new Jedis("127.0.0.1",6379);
19+
private static ThreadLocal<SimpleDateFormat> threadLocal = new ThreadLocal<SimpleDateFormat>(){
20+
protected synchronized SimpleDateFormat initialValue() {
21+
return new SimpleDateFormat("yy-MM-dd", Locale.getDefault());
22+
}
23+
};
24+
static {
25+
jedis.set("redisCount","10000");
26+
27+
}
28+
public static void main (String args[]){
29+
String value = randomId("01",new Date());
30+
System.out.println("value : " + value);
31+
}
32+
33+
public static String randomId(String type,Date date){
34+
SimpleDateFormat simpleDateFormat = threadLocal.get();
35+
String dateFomat = simpleDateFormat.format(date).replaceAll("-","");
36+
jedis.incr("redisCount");
37+
String redisValue = jedis.get("redisCount");
38+
UUID uuid = UUID.randomUUID();
39+
String uuidValue = new String(String.valueOf(uuid.hashCode())).
40+
replaceAll("-","").substring(0,2);
41+
return type + dateFomat + redisValue + uuidValue;
42+
}
43+
44+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.basics.redisTest;
2+
3+
import java.util.Calendar;
4+
import java.util.Date;
5+
import java.util.Timer;
6+
import java.util.TimerTask;
7+
8+
/**
9+
* @PACKAGE_NAME: com.basics.redisTest
10+
* @PROJECT_NAME: JavaCode
11+
* @Date: 2018/4/19
12+
* @author: Jossc
13+
*/
14+
public class TimerCleanRedis {
15+
static int count = 0;
16+
17+
public static void showTimer() {
18+
TimerTask task = new TimerTask() {
19+
@Override
20+
public void run() {
21+
++count;
22+
System.out.println("时间=" + new Date() + " 执行了" + count + "次"); // 1次
23+
}
24+
};
25+
//设置执行时间
26+
Calendar calendar = Calendar.getInstance();
27+
int year = calendar.get(Calendar.YEAR);
28+
int month = calendar.get(Calendar.MONTH);
29+
int day = calendar.get(Calendar.DAY_OF_MONTH);//每天
30+
//定制每天的00:00:00执行,
31+
calendar.set(year, month, day, 00, 00, 00);
32+
Date date = calendar.getTime();
33+
Timer timer = new Timer();
34+
System.out.println(date);
35+
36+
int period = 2 * 1000;
37+
timer.schedule(task, date, period);
38+
//每天的date时刻执行task, 仅执行一次
39+
//timer.schedule(task, date);
40+
}
41+
42+
public static void main(String[] args) {
43+
showTimer();
44+
}
45+
}

0 commit comments

Comments
 (0)