批量生成测试的个人信息

一、引入依赖

<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>java-testdata-generator</artifactId>
    <version>1.1.2</version>
</dependency>

二、使用案例

//创建一千个随机信息个人信息
final Jedis jedis = RedisDS.create().getJedis();
public static final String key = "TestData::Person";
public static final String provinceReg = "[\\u4E00-\\u9FFF]+?(?:省|自治区|特别行政区)|(?:天津|重庆|上海|北京)市";
@Test
public void createDataTest() {
    ChineseNameGenerator nameGenerator = ChineseNameGenerator.getInstance();
    ChineseMobileNumberGenerator mobileNumberGenerator = ChineseMobileNumberGenerator.getInstance();
    GenericGenerator idcardGenerator = ChineseIDCardNumberGenerator.getInstance();
    GenericGenerator addressGenerator = ChineseAddressGenerator.getInstance();
    //生成一千个 姓名、手机号,身份证,地址
    Pipeline pipeline = jedis.pipelined();
    IntStream.range(0, 1000).forEach(x -> {
        HashMap<String, String> map = new HashMap<>();
        map.put("name", nameGenerator.generate());
        map.put("mobile", mobileNumberGenerator.generate());
        String idcard = idcardGenerator.generate();
        map.put("idcard", idcard);
        map.put("address", addressGenerator.generate());
        String personKey = key + ":" + idcard;
        pipeline.hmset(personKey, map);
    });
    pipeline.sync();
}

//对这一千个测试信息按省份分组
@Test
public void mapTest() {
    Set<String> keys = jedis.keys(key + "*");
    Pipeline pipeline = jedis.pipelined();
    keys.forEach(key -> {
        pipeline.hgetAll(key);
    });
    List<Object> list = pipeline.syncAndReturnAll();
    Map<String, List<Map<String, String>>> personGroupByName = list.stream()
            .map(x -> (Map<String, String>) x)
            .collect(Collectors.groupingBy(x -> {
                String address = x.get("address");
                String province = ReUtil.getGroup0(provinceReg, address);
                return province;
            }));

    personGroupByName.forEach((x, y) -> {
        Console.log("省份:{},数量{}", x, y.size());
    });
    
}

三、显示结果

redis.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容