详解Redis的hash结构并理解Hutool工具包的BeanToMap()方法

Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。

java 对象 --> 转为 散列存储 , 每个独立的键 对应一个 java对象属性和值 作为散列结构 放在java对象中 , 相当于 外层大键key 可以获取这个对象 , 内层小键field 可以获取这个对象的指定属性的值

案例教学 :

  • 我们需要先将 这个 UserDTO对象 转换为 HashMap , HashMap里面就是 n 对 (属性hk : 值hv)  , hk就是hashkey或者说field , hv就是 hashvalue或者说value
  • 这里的beanToMap方法就是将(1.改造对象 , 2.目标对象类型 , 3.改造选项) 传入内部 ,  3.改造选项  : ①设置忽视空值②设置field和value的编辑选项 : 传入lambda表达式将 value转为String类型(因为原来的Bean对象的属性的值 是不同类型的, 保存进hash结构 必须要是字符串才行
  • 操作 opsForHash()的putAll()方法 , 将 自定义的 外部key传入 , 再传 我们的HashMap对象

//7.2.将User转为HashMap存储

        UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class);// User==>UserDTO

        Map<String, Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(),

                CopyOptions.create()

                        .setIgnoreNullValue(true)

                        .setFieldValueEditor((fieldName,fieldValue)-> fieldValue.toString())

                );//UserDTO对象的各个属性,都转为hash结构

        //7.3.存储到redis

        String tokenKey= LOGIN_USER_KEY + token;//前缀是 login:token:

        stringRedisTemplate.opsForHash().putAll(tokenKey,userMap);

看源码真的一目了然 啊 !!!!!!!

  • 这样就构造好了一个 Redis的数据类型存进redis了 , 左边蓝色的是key , 右边是三行 hk - hv
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值