RedisTemplate从键中获取前10条随机记录

时间:2019-07-11 07:11:47

标签: spring redis

我想从我的 Redis缓存中获取前10条随机记录。

使用密钥获取时,我大约有 25000 条记录,它会获取所有记录,因此25000条记录几乎要花3分钟以上的时间。请提供一些解决方案。我对模式有所了解,尽管我对如何实现它一无所知。

 BoundSetOperations<String, String> names =jedisTemplate.boundSetOps("Tapiez");


   names.members().parallelStream().forEach(id->{

    if(jedisTemplate.opsForHash().get("nameUUID", String.valueOf(id))!=null) {
    PersonState newPersonState = new PersonState();
    String nameUUID=jedisTemplate.opsForHash().get("nameUUID", String.valueOf(id)).toString();

    String userUUID=jedisTemplate.opsForHash().get("personUserMap",nameUUID).toString();

    String area=jedisTemplate.opsForHash().get("userDemographic:" + userUUID, "area").toString();

    String status=jedisTemplate.opsForHash().get("person:"+nameUUID, "status").toString();

    newPersonState.setName(personState.getName());
    newPersonState.setLocation(areaName);
    newPersonState.setId(Integer.valueOf(id));
    newPersonState.setMessage(status);

    listOfPersons.add(newPersonState);
    }
});

0 个答案:

没有答案