不会就选C. 2024-03-05 20:48 采纳率: 0%
浏览 47

Redis中list集合的存和取

如果用StringRedisTemplate中的opsforList取出来的是List,但是他是JSON格式的,那么如何将里面的数据封装成List返回给前端呢
还有就是存是怎么存呢?看下面代码图,求各位指点

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-03-05 20:48
    关注

    不会就选C. 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    根据你的描述,你想要将Redis中的List类型的数据封装成一个List返回给前端,并且想要知道如何将List类型的数据存储到Redis中。下面是解决方案:

    1. 将Redis中的List封装为List返回给前端:

    解决方案:

    • 获取Redis中的List数据:使用stringRedisTemplate.opsForList().range(key, start, end)方法来获取Redis中指定范围的List数据。
    • 将获取到的Redis List数据转为List对象:遍历获取到的Redis List数据,将每个元素转为你想要的对象类型,并添加到一个新的List中。
    • 返回封装好的List对象给前端。

    示例代码如下:

    String key = "cache:shotype";
    List<String> cacheList = stringRedisTemplate.opsForList().range(key, 0, -1);
    List<ShopType> shopTypeList = new ArrayList<>();
    if (cacheList != null && !cacheList.isEmpty()) {
        for (String json : cacheList) {
            ShopType shopType = // 将json转为ShopType对象
            shopTypeList.add(shopType);
        }
        return Result.ok(shopTypeList);
    }
    
    1. 将List类型的数据存储到Redis中:

    解决方案:

    • 将要存储的List数据转为JSON格式:将List中的每个元素转为JSON格式的字符串。
    • 使用stringRedisTemplate.opsForList().rightPushAll(key, value)方法将JSON格式的List数据存储到Redis中。

    示例代码如下:

    String key = "cache:shotype";
    List<ShopType> shopTypeList = // 要存储的List数据
    
    List<String> jsonList = new ArrayList<>();
    for (ShopType shopType : shopTypeList) {
        String json = // 将ShopType对象转为JSON格式的字符串
        jsonList.add(json);
    }
    
    stringRedisTemplate.opsForList().rightPushAll(key, jsonList);
    

    希望以上解决方案能对你有所帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月5日