详解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
    评论
Redis Hash 结构是一种数据结构,它允许你将键值对存储为哈希表的形式,其中每个键都是唯一的,并且可以关联任意类型的数据(包括字符串、列表、集合或有序集合)。在 Spring Boot 中整合 Redis,你可以使用 Spring Data Redis 库,它简化了与 Redis 的交互。 Spring Boot 整合 Redis 的步骤如下: 1. 添加依赖:在你的 `pom.xml` 或 `build.gradle` 文件中添加 Spring Data Redis 和相关 Redis客户端库的依赖,如 lettuce 或 Jedis。 ```xml <!-- Maven --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- Gradle (Lettuce) --> implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.5.x' implementation 'io.lettuce:lettuce-core:6.0.x' ``` 2. 配置 Redis:在 `application.properties` 或 `application.yml` 中配置 Redis 的连接信息,如主机名、端口和密码(如果有)。 ```yaml spring.redis.host=your-redis-host spring.redis.port=your-redis-port spring.redis.password=your-password ``` 3. 使用 `HashOperations`:Spring Data Redis 提供了 `HashOperations` 接口,你可以通过注入 `RedisTemplate` 或 `HashOperations` 对象来操作 RedisHash 结构。 ```java @Autowired private RedisTemplate<String, Object> redisTemplate; // 使用方法 HashOperations<String, String, Object> hashOps = redisTemplate.opsForHash("your-hash-key"); hashOps.put("field1", "value1"); hashOps.get("field1"); // 获取 value1 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值