博主
258
258
258
258
专辑

第十九节 保存对象到Redis中的List并实现遍历

亮子 2021-07-08 01:45:22 1308 1 1 0

1、存储对象到List

    @Test
    public void testSaveObjects() {
        List<TbPoem> tbPoems = tbPoemMapper.selectList(
                new QueryWrapper<TbPoem>().lambda().eq(TbPoem::getFlag, 1)
        );

        // 把对象转为json并存储
        try {
            ObjectMapper mapper = new ObjectMapper();
            for (TbPoem tbPoem : tbPoems) {
                String value = mapper.writeValueAsString(tbPoem);
                stringRedisTemplate.opsForList().leftPush("tbpoem", value);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }

2、遍历List并转为对象

1)、方法一

    @Test
    public void testSelectObjects() throws JsonProcessingException {
        Long size = stringRedisTemplate.opsForList().size("tbpoem");

        ObjectMapper mapper = new ObjectMapper();
        for (int i = 0; i < size; i++) {
            String tbpoem = stringRedisTemplate.opsForList().index("tbpoem", i);
            TbPoem tbPoem = mapper.readValue(tbpoem, TbPoem.class);
            System.out.println(tbPoem);
        }
    }

2)、方法二

    @Test
    public void testSelectObjects() throws JsonProcessingException {
        Long size = stringRedisTemplate.opsForList().size("tbpoem");

        ObjectMapper mapper = new ObjectMapper();

        List<String> tbpoem = stringRedisTemplate.opsForList().range("tbpoem", 0, -1);
        for (String s : tbpoem) {
            TbPoem tbPoem = mapper.readValue( s, TbPoem.class);
            System.out.println(tbPoem);
        }
    }