分布式ID生成策略

目前主流的几个主键生成策略:
1.UUID
2.数据库主键自增
3.基于redis分布式ID生成 (本次博文内容)
4.其他ID生成策略

为什么不使用第一、第二、第四种方式:UUID生成的是以字符串为主,且需要进行多次转换对于效率有一定影响,且其ID由字符+数字组成的随机字符串,可读性较差。数据库自增严重影响性能,其他ID生成策略部分优于第三种,但是不够通过,且大部分有着局限性,故不推荐。
分布式ID主要通过redis单线程自增保证在多线程环境下数据唯一性。上代码:

核心代码

        AssertUtils.isBlank(idName,"ID名字");
        if (!redisUtils.hasKey(idName)){
           throw new ServerException("请先编写此编码的规则");
        }
        String prefix = redisUtils.get(idName);
        String prefixName = prefix+"-"+DateUtils.format(new Date(),"yyyyMMdd");
        Long id = redisUtils.incr(prefixName,1);
        return prefixName+"-"+String.valueOf(id+100000L).substring(2,6);
    }

测试代码

        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 200; i++) {
                    System.out.println(Thread.currentThread().getName() + " ----- " + "生成的ID"+idUtils.getIdToString("blog_id"));
                }
            }
        },"线程01").start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 200; i++) {
                    System.out.println(Thread.currentThread().getName() + " ----- " + "生成的ID"+idUtils.getIdToString("blog_id"));
                }
            }
        },"线程02").start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 200; i++) {
                    System.out.println(Thread.currentThread().getName() + " ----- " + "生成的ID:"+idUtils.getIdToString("blog_id"));
                }
            }
        },"线程03").start();

测试代码中每个线程进行了200次新增操作,结果如下:

线程02 ----- 生成的IDconnie-20230305-0002
线程01 ----- 生成的IDconnie-20230305-0003
线程03 ----- 生成的IDconnie-20230305-0004
线程02 ----- 生成的IDconnie-20230305-0005
线程03 ----- 生成的IDconnie-20230305-0006
线程01 ----- 生成的IDconnie-20230305-0007
线程02 ----- 生成的IDconnie-20230305-0008
线程01 ----- 生成的IDconnie-20230305-0009
线程03 ----- 生成的IDconnie-20230305-0010
线程02 ----- 生成的IDconnie-20230305-0011
线程03 ----- 生成的IDconnie-20230305-0012
线程01 ----- 生成的IDconnie-20230305-0013
线程02 ----- 生成的IDconnie-20230305-0014
线程01 ----- 生成的IDconnie-20230305-0015
线程03 ----- 生成的IDconnie-20230305-0016
线程02 ----- 生成的IDconnie-20230305-0017
线程03 ----- 生成的IDconnie-20230305-0018
线程01 ----- 生成的IDconnie-20230305-0019
线程02 ----- 生成的IDconnie-20230305-0020
线程03 ----- 生成的IDconnie-20230305-0021
线程01 ----- 生成的IDconnie-20230305-0022
线程02 ----- 生成的IDconnie-20230305-0023
线程03 ----- 生成的IDconnie-20230305-0024
线程01 ----- 生成的IDconnie-20230305-0025
线程02 ----- 生成的IDconnie-20230305-0026
线程03 ----- 生成的IDconnie-20230305-0027
线程01 ----- 生成的IDconnie-20230305-0028
线程02 ----- 生成的IDconnie-20230305-0029
线程01 ----- 生成的IDconnie-20230305-0030
线程03 ----- 生成的IDconnie-20230305-0031
线程02 ----- 生成的IDconnie-20230305-0032
线程01 ----- 生成的IDconnie-20230305-0033
线程03 ----- 生成的IDconnie-20230305-0034
线程02 ----- 生成的IDconnie-20230305-0035
线程01 ----- 生成的IDconnie-20230305-0036
线程03 ----- 生成的IDconnie-20230305-0037
线程02 ----- 生成的IDconnie-20230305-0038
线程01 ----- 生成的IDconnie-20230305-0039
线程03 ----- 生成的IDconnie-20230305-0040
线程02 ----- 生成的IDconnie-20230305-0041
线程01 ----- 生成的IDconnie-20230305-0042
线程03 ----- 生成的IDconnie-20230305-0043
线程02 ----- 生成的IDconnie-20230305-0044
线程03 ----- 生成的IDconnie-20230305-0045
线程01 ----- 生成的IDconnie-20230305-0046
线程02 ----- 生成的IDconnie-20230305-0047
线程03 ----- 生成的IDconnie-20230305-0048
线程01 ----- 生成的IDconnie-20230305-0049
线程02 ----- 生成的IDconnie-20230305-0050
线程01 ----- 生成的IDconnie-20230305-0051
线程03 ----- 生成的IDconnie-20230305-0052
线程02 ----- 生成的IDconnie-20230305-0053
线程01 ----- 生成的IDconnie-20230305-0054
线程03 ----- 生成的IDconnie-20230305-0055
线程02 ----- 生成的IDconnie-20230305-0056
线程03 ----- 生成的IDconnie-20230305-0057
线程01 ----- 生成的IDconnie-20230305-0058
线程02 ----- 生成的IDconnie-20230305-0059
线程03 ----- 生成的IDconnie-20230305-0060
线程01 ----- 生成的IDconnie-20230305-0061
线程02 ----- 生成的IDconnie-20230305-0062
线程03 ----- 生成的IDconnie-20230305-0063
线程01 ----- 生成的IDconnie-20230305-0064
线程02 ----- 生成的IDconnie-20230305-0065
线程01 ----- 生成的IDconnie-20230305-0066
线程03 ----- 生成的IDconnie-20230305-0067
线程02 ----- 生成的IDconnie-20230305-0068
线程01 ----- 生成的IDconnie-20230305-0069
线程03 ----- 生成的IDconnie-20230305-0070
线程02 ----- 生成的IDconnie-20230305-0071
线程01 ----- 生成的IDconnie-20230305-0072
线程03 ----- 生成的IDconnie-20230305-0073
线程02 ----- 生成的IDconnie-20230305-0074
线程01 ----- 生成的IDconnie-20230305-0075
线程03 ----- 生成的IDconnie-20230305-0076
线程02 ----- 生成的IDconnie-20230305-0077
线程01 ----- 生成的IDconnie-20230305-0078
线程03 ----- 生成的IDconnie-20230305-0079
线程02 ----- 生成的IDconnie-20230305-0080
线程03 ----- 生成的IDconnie-20230305-0081
线程01 ----- 生成的IDconnie-20230305-0082
线程02 ----- 生成的IDconnie-20230305-0083
线程01 ----- 生成的IDconnie-20230305-0084
线程03 ----- 生成的IDconnie-20230305-0085
线程02 ----- 生成的IDconnie-20230305-0086
线程03 ----- 生成的IDconnie-20230305-0087
线程01 ----- 生成的IDconnie-20230305-0088
线程02 ----- 生成的IDconnie-20230305-0089
线程03 ----- 生成的IDconnie-20230305-0090
线程01 ----- 生成的IDconnie-20230305-0091
线程02 ----- 生成的IDconnie-20230305-0092
线程03 ----- 生成的IDconnie-20230305-0093
线程01 ----- 生成的IDconnie-20230305-0094
线程02 ----- 生成的IDconnie-20230305-0095
线程01 ----- 生成的IDconnie-20230305-0096
线程03 ----- 生成的IDconnie-20230305-0097
线程02 ----- 生成的IDconnie-20230305-0098
线程03 ----- 生成的IDconnie-20230305-0099
线程01 ----- 生成的IDconnie-20230305-0100
线程02 ----- 生成的IDconnie-20230305-0101
线程03 ----- 生成的IDconnie-20230305-0102
线程01 ----- 生成的IDconnie-20230305-0103
线程02 ----- 生成的IDconnie-20230305-0104
线程03 ----- 生成的IDconnie-20230305-0105
线程01 ----- 生成的IDconnie-20230305-0106
线程02 ----- 生成的IDconnie-20230305-0107
线程03 ----- 生成的IDconnie-20230305-0108
线程01 ----- 生成的IDconnie-20230305-0109
线程02 ----- 生成的IDconnie-20230305-0110
线程01 ----- 生成的IDconnie-20230305-0111
线程03 ----- 生成的IDconnie-20230305-0112
线程02 ----- 生成的IDconnie-20230305-0113
线程03 ----- 生成的IDconnie-20230305-0114
线程01 ----- 生成的IDconnie-20230305-0115
线程02 ----- 生成的IDconnie-20230305-0116
线程03 ----- 生成的IDconnie-20230305-0117
线程01 ----- 生成的IDconnie-20230305-0118
线程02 ----- 生成的IDconnie-20230305-0119
线程01 ----- 生成的IDconnie-20230305-0120
线程03 ----- 生成的IDconnie-20230305-0121
线程02 ----- 生成的IDconnie-20230305-0122
线程01 ----- 生成的IDconnie-20230305-0123
线程03 ----- 生成的IDconnie-20230305-0124
线程02 ----- 生成的IDconnie-20230305-0125
线程01 ----- 生成的IDconnie-20230305-0126
线程03 ----- 生成的IDconnie-20230305-0127
线程02 ----- 生成的IDconnie-20230305-0128
线程01 ----- 生成的IDconnie-20230305-0129
线程03 ----- 生成的IDconnie-20230305-0130
线程02 ----- 生成的IDconnie-20230305-0131
线程03 ----- 生成的IDconnie-20230305-0132
线程01 ----- 生成的IDconnie-20230305-0133
线程02 ----- 生成的IDconnie-20230305-0134
线程03 ----- 生成的IDconnie-20230305-0135
线程01 ----- 生成的IDconnie-20230305-0136
线程02 ----- 生成的IDconnie-20230305-0137
线程01 ----- 生成的IDconnie-20230305-0138
线程03 ----- 生成的IDconnie-20230305-0139
线程02 ----- 生成的IDconnie-20230305-0140
线程01 ----- 生成的IDconnie-20230305-0141
线程03 ----- 生成的IDconnie-20230305-0142
线程02 ----- 生成的IDconnie-20230305-0143
线程03 ----- 生成的IDconnie-20230305-0144
线程01 ----- 生成的IDconnie-20230305-0145
线程02 ----- 生成的IDconnie-20230305-0146
线程03 ----- 生成的IDconnie-20230305-0147
线程01 ----- 生成的IDconnie-20230305-0148
线程02 ----- 生成的IDconnie-20230305-0149
线程03 ----- 生成的IDconnie-20230305-0150
线程01 ----- 生成的IDconnie-20230305-0151
线程02 ----- 生成的IDconnie-20230305-0152
线程03 ----- 生成的IDconnie-20230305-0153
线程01 ----- 生成的IDconnie-20230305-0154
线程02 ----- 生成的IDconnie-20230305-0155
线程03 ----- 生成的IDconnie-20230305-0156
线程01 ----- 生成的IDconnie-20230305-0157
线程02 ----- 生成的IDconnie-20230305-0158
线程03 ----- 生成的IDconnie-20230305-0159
线程01 ----- 生成的IDconnie-20230305-0160
线程02 ----- 生成的IDconnie-20230305-0161
线程01 ----- 生成的IDconnie-20230305-0162
线程03 ----- 生成的IDconnie-20230305-0163
线程02 ----- 生成的IDconnie-20230305-0164
线程03 ----- 生成的IDconnie-20230305-0165
线程01 ----- 生成的IDconnie-20230305-0166
线程02 ----- 生成的IDconnie-20230305-0167
线程01 ----- 生成的IDconnie-20230305-0168
线程03 ----- 生成的IDconnie-20230305-0169
线程02 ----- 生成的IDconnie-20230305-0170
线程03 ----- 生成的IDconnie-20230305-0171
线程01 ----- 生成的IDconnie-20230305-0172
线程02 ----- 生成的IDconnie-20230305-0173
线程03 ----- 生成的IDconnie-20230305-0174
线程01 ----- 生成的IDconnie-20230305-0175
线程02 ----- 生成的IDconnie-20230305-0176
线程01 ----- 生成的IDconnie-20230305-0177
线程03 ----- 生成的IDconnie-20230305-0178
线程02 ----- 生成的IDconnie-20230305-0179
线程01 ----- 生成的IDconnie-20230305-0180
线程03 ----- 生成的IDconnie-20230305-0181
线程02 ----- 生成的IDconnie-20230305-0182
线程03 ----- 生成的IDconnie-20230305-0183
线程01 ----- 生成的IDconnie-20230305-0184
线程02 ----- 生成的IDconnie-20230305-0185
线程03 ----- 生成的IDconnie-20230305-0186
线程01 ----- 生成的IDconnie-20230305-0187
线程02 ----- 生成的IDconnie-20230305-0188
线程01 ----- 生成的IDconnie-20230305-0189
线程03 ----- 生成的IDconnie-20230305-0190
线程02 ----- 生成的IDconnie-20230305-0191
线程03 ----- 生成的IDconnie-20230305-0192
线程01 ----- 生成的IDconnie-20230305-0193
线程02 ----- 生成的IDconnie-20230305-0194
线程01 ----- 生成的IDconnie-20230305-0195
线程03 ----- 生成的IDconnie-20230305-0196
线程02 ----- 生成的IDconnie-20230305-0197
线程01 ----- 生成的IDconnie-20230305-0198
线程03 ----- 生成的IDconnie-20230305-0199
线程02 ----- 生成的IDconnie-20230305-0200
线程03 ----- 生成的IDconnie-20230305-0201
线程01 ----- 生成的IDconnie-20230305-0202
线程02 ----- 生成的IDconnie-20230305-0203
线程01 ----- 生成的IDconnie-20230305-0204
线程03 ----- 生成的IDconnie-20230305-0205
线程02 ----- 生成的IDconnie-20230305-0206
线程01 ----- 生成的IDconnie-20230305-0207
线程03 ----- 生成的IDconnie-20230305-0208
线程02 ----- 生成的IDconnie-20230305-0209
线程01 ----- 生成的IDconnie-20230305-0210
线程03 ----- 生成的IDconnie-20230305-0211
线程02 ----- 生成的IDconnie-20230305-0212
线程01 ----- 生成的IDconnie-20230305-0213
线程03 ----- 生成的IDconnie-20230305-0214
线程02 ----- 生成的IDconnie-20230305-0215
线程01 ----- 生成的IDconnie-20230305-0216
线程03 ----- 生成的IDconnie-20230305-0217
线程02 ----- 生成的IDconnie-20230305-0218
线程01 ----- 生成的IDconnie-20230305-0219
线程03 ----- 生成的IDconnie-20230305-0220
线程02 ----- 生成的IDconnie-20230305-0221
线程03 ----- 生成的IDconnie-20230305-0222
线程01 ----- 生成的IDconnie-20230305-0223
线程02 ----- 生成的IDconnie-20230305-0224
线程01 ----- 生成的IDconnie-20230305-0225
线程03 ----- 生成的IDconnie-20230305-0226
线程02 ----- 生成的IDconnie-20230305-0227
线程01 ----- 生成的IDconnie-20230305-0228
线程03 ----- 生成的IDconnie-20230305-0229
线程02 ----- 生成的IDconnie-20230305-0230
线程03 ----- 生成的IDconnie-20230305-0231
线程01 ----- 生成的IDconnie-20230305-0232
线程02 ----- 生成的IDconnie-20230305-0233
线程01 ----- 生成的IDconnie-20230305-0234
线程03 ----- 生成的IDconnie-20230305-0235
线程02 ----- 生成的IDconnie-20230305-0236
线程01 ----- 生成的IDconnie-20230305-0237
线程03 ----- 生成的IDconnie-20230305-0238
线程02 ----- 生成的IDconnie-20230305-0239
线程01 ----- 生成的IDconnie-20230305-0240
线程03 ----- 生成的IDconnie-20230305-0241
线程02 ----- 生成的IDconnie-20230305-0242
线程01 ----- 生成的IDconnie-20230305-0243
线程03 ----- 生成的IDconnie-20230305-0244
线程02 ----- 生成的IDconnie-20230305-0245
线程01 ----- 生成的IDconnie-20230305-0246
线程03 ----- 生成的IDconnie-20230305-0247
线程02 ----- 生成的IDconnie-20230305-0248
线程01 ----- 生成的IDconnie-20230305-0249
线程03 ----- 生成的IDconnie-20230305-0250
线程02 ----- 生成的IDconnie-20230305-0251
线程03 ----- 生成的IDconnie-20230305-0252
线程01 ----- 生成的IDconnie-20230305-0253
线程02 ----- 生成的IDconnie-20230305-0254
线程03 ----- 生成的IDconnie-20230305-0255
线程01 ----- 生成的IDconnie-20230305-0256
线程02 ----- 生成的IDconnie-20230305-0257
线程03 ----- 生成的IDconnie-20230305-0258
线程01 ----- 生成的IDconnie-20230305-0259
线程02 ----- 生成的IDconnie-20230305-0260
线程01 ----- 生成的IDconnie-20230305-0261
线程03 ----- 生成的IDconnie-20230305-0262
线程02 ----- 生成的IDconnie-20230305-0263
线程01 ----- 生成的IDconnie-20230305-0264
线程03 ----- 生成的IDconnie-20230305-0265
线程02 ----- 生成的IDconnie-20230305-0266
线程01 ----- 生成的IDconnie-20230305-0268
线程03 ----- 生成的IDconnie-20230305-0267
线程02 ----- 生成的IDconnie-20230305-0269
线程03 ----- 生成的IDconnie-20230305-0270
线程01 ----- 生成的IDconnie-20230305-0271
线程02 ----- 生成的IDconnie-20230305-0272
线程03 ----- 生成的IDconnie-20230305-0273
线程01 ----- 生成的IDconnie-20230305-0274
线程02 ----- 生成的IDconnie-20230305-0275
线程01 ----- 生成的IDconnie-20230305-0276
线程03 ----- 生成的IDconnie-20230305-0277
线程02 ----- 生成的IDconnie-20230305-0278
线程03 ----- 生成的IDconnie-20230305-0279
线程01 ----- 生成的IDconnie-20230305-0280
线程02 ----- 生成的IDconnie-20230305-0281
线程03 ----- 生成的IDconnie-20230305-0282
线程01 ----- 生成的IDconnie-20230305-0283
线程02 ----- 生成的IDconnie-20230305-0284
线程01 ----- 生成的IDconnie-20230305-0285
线程03 ----- 生成的IDconnie-20230305-0286
线程02 ----- 生成的IDconnie-20230305-0287
线程01 ----- 生成的IDconnie-20230305-0288
线程03 ----- 生成的IDconnie-20230305-0289
线程02 ----- 生成的IDconnie-20230305-0290
线程01 ----- 生成的IDconnie-20230305-0291
线程03 ----- 生成的IDconnie-20230305-0292
线程02 ----- 生成的IDconnie-20230305-0293
线程01 ----- 生成的IDconnie-20230305-0294
线程03 ----- 生成的IDconnie-20230305-0295
线程02 ----- 生成的IDconnie-20230305-0296
线程03 ----- 生成的IDconnie-20230305-0297
线程01 ----- 生成的IDconnie-20230305-0298
线程02 ----- 生成的IDconnie-20230305-0299
线程03 ----- 生成的IDconnie-20230305-0300
线程01 ----- 生成的IDconnie-20230305-0301
线程02 ----- 生成的IDconnie-20230305-0302
线程01 ----- 生成的IDconnie-20230305-0303
线程03 ----- 生成的IDconnie-20230305-0304
线程02 ----- 生成的IDconnie-20230305-0305
线程03 ----- 生成的IDconnie-20230305-0306
线程01 ----- 生成的IDconnie-20230305-0307
线程02 ----- 生成的IDconnie-20230305-0308
线程01 ----- 生成的IDconnie-20230305-0309
线程03 ----- 生成的IDconnie-20230305-0310
线程02 ----- 生成的IDconnie-20230305-0311
线程01 ----- 生成的IDconnie-20230305-0312
线程03 ----- 生成的IDconnie-20230305-0313
线程02 ----- 生成的IDconnie-20230305-0314
线程01 ----- 生成的IDconnie-20230305-0315
线程03 ----- 生成的IDconnie-20230305-0316
线程02 ----- 生成的IDconnie-20230305-0317
线程03 ----- 生成的IDconnie-20230305-0318
线程01 ----- 生成的IDconnie-20230305-0319
线程02 ----- 生成的IDconnie-20230305-0320
线程03 ----- 生成的IDconnie-20230305-0321
线程01 ----- 生成的IDconnie-20230305-0322
线程02 ----- 生成的IDconnie-20230305-0323
线程03 ----- 生成的IDconnie-20230305-0324
线程01 ----- 生成的IDconnie-20230305-0325
线程02 ----- 生成的IDconnie-20230305-0326
线程03 ----- 生成的IDconnie-20230305-0327
线程01 ----- 生成的IDconnie-20230305-0328
线程02 ----- 生成的IDconnie-20230305-0329
线程03 ----- 生成的IDconnie-20230305-0330
线程01 ----- 生成的IDconnie-20230305-0331
线程02 ----- 生成的IDconnie-20230305-0332
线程01 ----- 生成的IDconnie-20230305-0333
线程03 ----- 生成的IDconnie-20230305-0334
线程02 ----- 生成的IDconnie-20230305-0335
线程01 ----- 生成的IDconnie-20230305-0336
线程03 ----- 生成的IDconnie-20230305-0337
线程02 ----- 生成的IDconnie-20230305-0338
线程01 ----- 生成的IDconnie-20230305-0339
线程03 ----- 生成的IDconnie-20230305-0340
线程02 ----- 生成的IDconnie-20230305-0341
线程03 ----- 生成的IDconnie-20230305-0342
线程01 ----- 生成的IDconnie-20230305-0343
线程02 ----- 生成的IDconnie-20230305-0344
线程03 ----- 生成的IDconnie-20230305-0345
线程01 ----- 生成的IDconnie-20230305-0346
线程02 ----- 生成的IDconnie-20230305-0347
线程01 ----- 生成的IDconnie-20230305-0348
线程03 ----- 生成的IDconnie-20230305-0349
线程02 ----- 生成的IDconnie-20230305-0350
线程01 ----- 生成的IDconnie-20230305-0351
线程03 ----- 生成的IDconnie-20230305-0352
线程02 ----- 生成的IDconnie-20230305-0353
线程03 ----- 生成的IDconnie-20230305-0354
线程01 ----- 生成的IDconnie-20230305-0355
线程02 ----- 生成的IDconnie-20230305-0356
线程03 ----- 生成的IDconnie-20230305-0357
线程01 ----- 生成的IDconnie-20230305-0358
线程02 ----- 生成的IDconnie-20230305-0359
线程01 ----- 生成的IDconnie-20230305-0360
线程03 ----- 生成的IDconnie-20230305-0361
线程02 ----- 生成的IDconnie-20230305-0362
线程01 ----- 生成的IDconnie-20230305-0363
线程03 ----- 生成的IDconnie-20230305-0364
线程02 ----- 生成的IDconnie-20230305-0365
线程01 ----- 生成的IDconnie-20230305-0366
线程03 ----- 生成的IDconnie-20230305-0367
线程02 ----- 生成的IDconnie-20230305-0368
线程01 ----- 生成的IDconnie-20230305-0369
线程03 ----- 生成的IDconnie-20230305-0370
线程02 ----- 生成的IDconnie-20230305-0371
线程01 ----- 生成的IDconnie-20230305-0372
线程03 ----- 生成的IDconnie-20230305-0373
线程02 ----- 生成的IDconnie-20230305-0374
线程01 ----- 生成的IDconnie-20230305-0375
线程03 ----- 生成的IDconnie-20230305-0376
线程02 ----- 生成的IDconnie-20230305-0377
线程01 ----- 生成的IDconnie-20230305-0378
线程03 ----- 生成的IDconnie-20230305-0379
线程02 ----- 生成的IDconnie-20230305-0380
线程01 ----- 生成的IDconnie-20230305-0381
线程03 ----- 生成的IDconnie-20230305-0382
线程02 ----- 生成的IDconnie-20230305-0383
线程01 ----- 生成的IDconnie-20230305-0384
线程03 ----- 生成的IDconnie-20230305-0385
线程02 ----- 生成的IDconnie-20230305-0386
线程03 ----- 生成的IDconnie-20230305-0387
线程01 ----- 生成的IDconnie-20230305-0388
线程02 ----- 生成的IDconnie-20230305-0389
线程03 ----- 生成的IDconnie-20230305-0390
线程01 ----- 生成的IDconnie-20230305-0391
线程02 ----- 生成的IDconnie-20230305-0392
线程03 ----- 生成的IDconnie-20230305-0393
线程01 ----- 生成的IDconnie-20230305-0394
线程02 ----- 生成的IDconnie-20230305-0395
线程01 ----- 生成的IDconnie-20230305-0396
线程03 ----- 生成的IDconnie-20230305-0397
线程02 ----- 生成的IDconnie-20230305-0398
线程01 ----- 生成的IDconnie-20230305-0399
线程03 ----- 生成的IDconnie-20230305-0400
线程02 ----- 生成的IDconnie-20230305-0401
线程01 ----- 生成的IDconnie-20230305-0402
线程03 ----- 生成的IDconnie-20230305-0403
线程02 ----- 生成的IDconnie-20230305-0404
线程01 ----- 生成的IDconnie-20230305-0405
线程03 ----- 生成的IDconnie-20230305-0406
线程02 ----- 生成的IDconnie-20230305-0407
线程03 ----- 生成的IDconnie-20230305-0408
线程01 ----- 生成的IDconnie-20230305-0409
线程02 ----- 生成的IDconnie-20230305-0410
线程03 ----- 生成的IDconnie-20230305-0411
线程01 ----- 生成的IDconnie-20230305-0412
线程02 ----- 生成的IDconnie-20230305-0413
线程01 ----- 生成的IDconnie-20230305-0414
线程03 ----- 生成的IDconnie-20230305-0415
线程02 ----- 生成的IDconnie-20230305-0416
线程01 ----- 生成的IDconnie-20230305-0417
线程03 ----- 生成的IDconnie-20230305-0418
线程02 ----- 生成的IDconnie-20230305-0419
线程01 ----- 生成的IDconnie-20230305-0420
线程03 ----- 生成的IDconnie-20230305-0421
线程02 ----- 生成的IDconnie-20230305-0422
线程01 ----- 生成的IDconnie-20230305-0423
线程03 ----- 生成的IDconnie-20230305-0424
线程02 ----- 生成的IDconnie-20230305-0425
线程01 ----- 生成的IDconnie-20230305-0426
线程03 ----- 生成的IDconnie-20230305-0427
线程02 ----- 生成的IDconnie-20230305-0428
线程01 ----- 生成的IDconnie-20230305-0429
线程03 ----- 生成的IDconnie-20230305-0430
线程02 ----- 生成的IDconnie-20230305-0431
线程01 ----- 生成的IDconnie-20230305-0432
线程03 ----- 生成的IDconnie-20230305-0433
线程02 ----- 生成的IDconnie-20230305-0434
线程01 ----- 生成的IDconnie-20230305-0435
线程03 ----- 生成的IDconnie-20230305-0436
线程02 ----- 生成的IDconnie-20230305-0437
线程01 ----- 生成的IDconnie-20230305-0438
线程03 ----- 生成的IDconnie-20230305-0439
线程02 ----- 生成的IDconnie-20230305-0440
线程01 ----- 生成的IDconnie-20230305-0441
线程03 ----- 生成的IDconnie-20230305-0442
线程02 ----- 生成的IDconnie-20230305-0443
线程01 ----- 生成的IDconnie-20230305-0444
线程03 ----- 生成的IDconnie-20230305-0445
线程02 ----- 生成的IDconnie-20230305-0446
线程01 ----- 生成的IDconnie-20230305-0447
线程03 ----- 生成的IDconnie-20230305-0448
线程02 ----- 生成的IDconnie-20230305-0449
线程01 ----- 生成的IDconnie-20230305-0450
线程03 ----- 生成的IDconnie-20230305-0451
线程02 ----- 生成的IDconnie-20230305-0452
线程03 ----- 生成的IDconnie-20230305-0453
线程01 ----- 生成的IDconnie-20230305-0454
线程02 ----- 生成的IDconnie-20230305-0455
线程01 ----- 生成的IDconnie-20230305-0456
线程03 ----- 生成的IDconnie-20230305-0457
线程02 ----- 生成的IDconnie-20230305-0458
线程01 ----- 生成的IDconnie-20230305-0459
线程03 ----- 生成的IDconnie-20230305-0460
线程02 ----- 生成的IDconnie-20230305-0461
线程03 ----- 生成的IDconnie-20230305-0462
线程01 ----- 生成的IDconnie-20230305-0463
线程02 ----- 生成的IDconnie-20230305-0464
线程01 ----- 生成的IDconnie-20230305-0465
线程03 ----- 生成的IDconnie-20230305-0466
线程02 ----- 生成的IDconnie-20230305-0467
线程01 ----- 生成的IDconnie-20230305-0468
线程03 ----- 生成的IDconnie-20230305-0469
线程02 ----- 生成的IDconnie-20230305-0470
线程01 ----- 生成的IDconnie-20230305-0471
线程03 ----- 生成的IDconnie-20230305-0472
线程02 ----- 生成的IDconnie-20230305-0473
线程01 ----- 生成的IDconnie-20230305-0474
线程03 ----- 生成的IDconnie-20230305-0475
线程02 ----- 生成的IDconnie-20230305-0476
线程01 ----- 生成的IDconnie-20230305-0477
线程03 ----- 生成的IDconnie-20230305-0478
线程02 ----- 生成的IDconnie-20230305-0479
线程03 ----- 生成的IDconnie-20230305-0480
线程01 ----- 生成的IDconnie-20230305-0481
线程02 ----- 生成的IDconnie-20230305-0482
线程01 ----- 生成的IDconnie-20230305-0483
线程03 ----- 生成的IDconnie-20230305-0484
线程02 ----- 生成的IDconnie-20230305-0485
线程01 ----- 生成的IDconnie-20230305-0486
线程03 ----- 生成的IDconnie-20230305-0487
线程02 ----- 生成的IDconnie-20230305-0488
线程01 ----- 生成的IDconnie-20230305-0489
线程03 ----- 生成的IDconnie-20230305-0490
线程02 ----- 生成的IDconnie-20230305-0491
线程01 ----- 生成的IDconnie-20230305-0492
线程03 ----- 生成的IDconnie-20230305-0493
线程02 ----- 生成的IDconnie-20230305-0494
线程01 ----- 生成的IDconnie-20230305-0495
线程03 ----- 生成的IDconnie-20230305-0496
线程02 ----- 生成的IDconnie-20230305-0497
线程01 ----- 生成的IDconnie-20230305-0498
线程03 ----- 生成的IDconnie-20230305-0499
线程02 ----- 生成的IDconnie-20230305-0500
线程03 ----- 生成的IDconnie-20230305-0501
线程01 ----- 生成的IDconnie-20230305-0502
线程02 ----- 生成的IDconnie-20230305-0503
线程01 ----- 生成的IDconnie-20230305-0504
线程03 ----- 生成的IDconnie-20230305-0505
线程02 ----- 生成的IDconnie-20230305-0506
线程01 ----- 生成的IDconnie-20230305-0507
线程03 ----- 生成的IDconnie-20230305-0508
线程02 ----- 生成的IDconnie-20230305-0509
线程01 ----- 生成的IDconnie-20230305-0510
线程03 ----- 生成的IDconnie-20230305-0511
线程02 ----- 生成的IDconnie-20230305-0512
线程03 ----- 生成的IDconnie-20230305-0513
线程01 ----- 生成的IDconnie-20230305-0514
线程02 ----- 生成的IDconnie-20230305-0515
线程01 ----- 生成的IDconnie-20230305-0516
线程03 ----- 生成的IDconnie-20230305-0517
线程02 ----- 生成的IDconnie-20230305-0518
线程03 ----- 生成的IDconnie-20230305-0519
线程01 ----- 生成的IDconnie-20230305-0520
线程02 ----- 生成的IDconnie-20230305-0521
线程01 ----- 生成的IDconnie-20230305-0522
线程03 ----- 生成的IDconnie-20230305-0523
线程02 ----- 生成的IDconnie-20230305-0524
线程01 ----- 生成的IDconnie-20230305-0525
线程03 ----- 生成的IDconnie-20230305-0526
线程02 ----- 生成的IDconnie-20230305-0527
线程03 ----- 生成的IDconnie-20230305-0528
线程01 ----- 生成的IDconnie-20230305-0529
线程02 ----- 生成的IDconnie-20230305-0530
线程01 ----- 生成的IDconnie-20230305-0531
线程03 ----- 生成的IDconnie-20230305-0532
线程02 ----- 生成的IDconnie-20230305-0533
线程01 ----- 生成的IDconnie-20230305-0534
线程03 ----- 生成的IDconnie-20230305-0535
线程02 ----- 生成的IDconnie-20230305-0536
线程01 ----- 生成的IDconnie-20230305-0537
线程03 ----- 生成的IDconnie-20230305-0538
线程02 ----- 生成的IDconnie-20230305-0539
线程01 ----- 生成的IDconnie-20230305-0540
线程03 ----- 生成的IDconnie-20230305-0541
线程02 ----- 生成的IDconnie-20230305-0542
线程01 ----- 生成的IDconnie-20230305-0543
线程03 ----- 生成的IDconnie-20230305-0544
线程02 ----- 生成的IDconnie-20230305-0545
线程03 ----- 生成的IDconnie-20230305-0546
线程01 ----- 生成的IDconnie-20230305-0547
线程02 ----- 生成的IDconnie-20230305-0548
线程01 ----- 生成的IDconnie-20230305-0549
线程03 ----- 生成的IDconnie-20230305-0550
线程02 ----- 生成的IDconnie-20230305-0551
线程03 ----- 生成的IDconnie-20230305-0552
线程01 ----- 生成的IDconnie-20230305-0553
线程02 ----- 生成的IDconnie-20230305-0554
线程01 ----- 生成的IDconnie-20230305-0555
线程03 ----- 生成的IDconnie-20230305-0556
线程02 ----- 生成的IDconnie-20230305-0557
线程01 ----- 生成的IDconnie-20230305-0558
线程03 ----- 生成的IDconnie-20230305-0559
线程02 ----- 生成的IDconnie-20230305-0560
线程01 ----- 生成的IDconnie-20230305-0561
线程03 ----- 生成的IDconnie-20230305-0562
线程02 ----- 生成的IDconnie-20230305-0563
线程01 ----- 生成的IDconnie-20230305-0564
线程03 ----- 生成的IDconnie-20230305-0565
线程02 ----- 生成的IDconnie-20230305-0566
线程01 ----- 生成的IDconnie-20230305-0567
线程03 ----- 生成的IDconnie-20230305-0568
线程02 ----- 生成的IDconnie-20230305-0569
线程01 ----- 生成的IDconnie-20230305-0570
线程03 ----- 生成的IDconnie-20230305-0571
线程02 ----- 生成的IDconnie-20230305-0572
线程01 ----- 生成的IDconnie-20230305-0573
线程03 ----- 生成的IDconnie-20230305-0574
线程02 ----- 生成的IDconnie-20230305-0575
线程01 ----- 生成的IDconnie-20230305-0576
线程03 ----- 生成的IDconnie-20230305-0577
线程02 ----- 生成的IDconnie-20230305-0578
线程01 ----- 生成的IDconnie-20230305-0579
线程03 ----- 生成的IDconnie-20230305-0580
线程02 ----- 生成的IDconnie-20230305-0581
线程01 ----- 生成的IDconnie-20230305-0582
线程03 ----- 生成的IDconnie-20230305-0583
线程02 ----- 生成的IDconnie-20230305-0584
线程01 ----- 生成的IDconnie-20230305-0585
线程03 ----- 生成的IDconnie-20230305-0586
线程02 ----- 生成的IDconnie-20230305-0587
线程01 ----- 生成的IDconnie-20230305-0588
线程03 ----- 生成的IDconnie-20230305-0589
线程02 ----- 生成的IDconnie-20230305-0590
线程01 ----- 生成的IDconnie-20230305-0591
线程03 ----- 生成的IDconnie-20230305-0592
线程02 ----- 生成的IDconnie-20230305-0593
线程01 ----- 生成的IDconnie-20230305-0594
线程03 ----- 生成的IDconnie-20230305-0595
线程02 ----- 生成的IDconnie-20230305-0596
线程01 ----- 生成的IDconnie-20230305-0597
线程03 ----- 生成的IDconnie-20230305-0598
线程02 ----- 生成的IDconnie-20230305-0599
线程01 ----- 生成的IDconnie-20230305-0600
线程03 ----- 生成的IDconnie-20230305-0601

最终生成了600个ID,其中无重复的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值