redis 存放 redis 不同list集合 不同对象取值 list集合

这篇具有很好参考价值的文章主要介绍了redis 存放 redis 不同list集合 不同对象取值 list集合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

redis 存放 redis 不同list集合 不同对象取值 list集合

测试代码

            List<User> userList= new ArrayList<>();
            userList= ArrayListConstants.getUserSql;//查询 list 集合数据
            RedisTemplateUtil.setRedisList("keyredis", userList);//set 集合数据
            RedisTemplateUtil.getRedisList("keyredis", User.class);//取集合数据
           

GenericTypeReference.java

import com.fasterxml.jackson.core.type.TypeReference;
import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl;

import java.lang.reflect.Type;
import java.util.List;

/**
 * @Author 
 * @Data 2024-04-12 10:37:03
 */
public class GenericTypeReference<T> extends TypeReference<List<T>> {
    private final Class<T> elementType;

    public GenericTypeReference(Class<T> elementType) {
        this.elementType = elementType;
    }

    @Override
    public Type getType() {
        return ParameterizedTypeImpl.make(List.class, new Type[]{elementType}, null);
    }
}

RedisTemplateUtil 方法

public class RedisTemplateUtil {
    private static final ObjectMapper objectMapper = new ObjectMapper();


    private static RedisTemplate redisTemplates;

    public static <T> void setRedisList(String key, List<T> list) {
        try {
            String value = objectMapper.writeValueAsString(list);
            redisTemplates.opsForValue().set(key, value);
        } catch (JsonProcessingException e) {
            logger.error("redis赋值list集合方法:setRedisList 报错" + e.getMessage());
        }
    }

    public static <T> List<T> getRedisList(String key, Class<T> elementType) {
        try {
            String json = (String) redisTemplates.opsForValue().get(key);
            return objectMapper.readValue(json, new GenericTypeReference<>(elementType));
        } catch (JsonProcessingException e) {
            logger.error("redis取list集合方法:getRedisList 报错" + e.getMessage());
            return null;
        }
    }

    public static void setRedisMapList(String key, List<Map<String, Object>> mapList) {
        try {
            String value = objectMapper.writeValueAsString(mapList);
            redisTemplates.opsForValue().set(key, value);
        } catch (JsonProcessingException e) {
            logger.error("redis赋值list集合方法:setRedisMapList 报错" + e.getMessage());
        }
    }

    public static List<Map<String, Object>> getRedisMapList(String key) {
        try {
            String json = (String) redisTemplates.opsForValue().get(key);
            return objectMapper.readValue(json, new TypeReference<List<Map<String, Object>>>() {
            });
        } catch (JsonProcessingException e) {
            logger.error("redis取list集合方法:getRedisMapList 报错" + e.getMessage());
            return null;
        }

    }
}

文章来源地址https://www.toymoban.com/news/detail-852853.html

到了这里,关于redis 存放 redis 不同list集合 不同对象取值 list集合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中List对象集合按照对象中某字段进行排序

    在Java中,可以使用List集合对象的sort(Comparator? super E c)方法,按照对象中某字段对List集合进行排序 栗子: 打印输出结果如下:

    2024年02月12日
    浏览(56)
  • Java当中List集合根据对象某个属性进行去重

    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用,去重方式有很多种,文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然

    2024年02月16日
    浏览(64)
  • java:List<Object>转成对象集合的神技,贼好用

    在开发中,遇到了一个问题,由于是公共查询方法,返回的类型竟然是ListObject,我本地调用之后需要进行对象映射保存数据库,可是怎么转都转不成对象集合,最后发现了一个神技公共方法,贴出来让大家也吃下红利。 公共方法: 调用方法: 大家可以试下,我已经亲自试过

    2024年02月03日
    浏览(51)
  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)

    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。 集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。 我的学生类代码如下: 下面来添加一些测试用的数据,代码如下: 添加过滤条件

    2024年02月12日
    浏览(68)
  • Java Stream比较两个List的差异,并取出不同的对象

    可以使用Java8的Stream API来比较两个List的差异,并取出不同的对象。   1. 将两个List转换为Stream类型;   2. 调用Stream的filter方法,将不同的对象过滤出来;   3. 将过滤出的不同的对象转换为List类型。         上述代码中,将两个List类型的对象list1和list2转换为Stream类型,并

    2024年02月08日
    浏览(58)
  • Java判断List集合中的对象是否包含有某一元素

    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然后进行套着使用即可

    2024年02月11日
    浏览(75)
  • java 对List集合中元素对象按字段分组,并收集指定字段的值

    一、实现:对已有对象集合ListPersion ,需要获取Persion对象的字段 name分组, 并对年龄age字段值做收集 二、字段分组收集方法  注:由于实际业务只有String类型跟数字类型,所以只对String跟Object两种类型判空 三、测试代码 四、结果

    2024年02月15日
    浏览(50)
  • Java中List集合对象去重及按属性去重的8种方法

    是大家最容易想到的,先把List数据放入Set,因为Set数据结构本身具有去重的功能,所以再将SET转为List之后就是去重之后的结果。这种方法在去重之后会改变原有的List元素顺序,因为HashSet本身是无序的,而TreeSet排序也不是List种元素的原有顺序。 去重后的集合: [kobe, james,

    2024年04月15日
    浏览(144)
  • Java中用Stream流对List对象集合转Map时key值重复的操作

    看完你还不懂,你直接喷·· 定义: 1.List是一个装Dto对象的集合 2.Dto里面有ID属性,name属性等等 3.Dto里面的ID会重复  现在要把List转成以ID为key值的map,明显key不能重复啊,所以应该怎么操作呢? (需要你有java8Stream流的基本概念,map的基本概念)   操作1:重复key,选择保留

    2024年01月18日
    浏览(59)
  • 存放数据的方式:Java集合框架

    在Java编程中,我们经常需要存储和操作一组相关的数据。下面介绍了目前常见的数据存放方式。 变量: 变量是最简单的数据存放方式,用于保存单个值或对象的引用。例如,可以使用一个 int 类型的变量来保存一个整数值,使用一个 String 类型的变量来保存一个字符串。 对

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包