stringRedisTemplate.opsForHash().entries

Redis Hash 操作详解

一、entries() 方法

1. 基本作用
java 复制代码
Map<Object,Object> userMap=stringRedisTemplate.opsForHash().entries(key);

作用:获取 Hash 中所有的字段和值,返回一个 Map。

2. 简单理解

Redis Hash存储:

{

"id": "1",

"nickName": "张三",

"icon": "xxx"

}

↓ entries()方法

返回Map:

{

"id": "1",

"nickName": "张三",

"icon": "xxx"

}

解释为什么需要转换

二、本质区别

1. Redis Hash(Redis 的数据结构)

Redis Hash = Redis数据库中的数据

  • 存储在Redis服务器中

  • Java代码不能直接使用

  • 需要通过Redis客户端操作

2. Java Map(Java 的数据结构)

Java Map = Java程序中的数据结构

  • 存储在Java程序的内存中

  • Java代码可以直接使用

  • 可以直接操作

三、为什么需要转换?

1. 不同系统之间的数据

Redis Hash(Redis服务器)

↓ entries()方法(转换)

Java Map(Java程序)

↓ 使用

Java代码可以直接操作

2. 用生活例子理解

Redis Hash = 银行里的钱(存在银行)

Java Map = 你手里的现金(可以花)

entries() = 从银行取钱,变成现金

四、实际执行过程

步骤1:Redis 中存储(Hash 结构)

Redis服务器中:

Key: "login:token:abc123"

Value (Hash): {

"id": "1",

"nickName": "张三",

"icon": "xxx"

}

这是 Redis 的数据,Java 代码不能直接使用。

步骤2:通过 entries() 获取并转换

Map<Object,Object> userMap = stringRedisTemplate.opsForHash()

.entries("login:token:abc123");

执行过程:

  1. Java 程序向 Redis 发送请求
  2. Redis 返回 Hash 数据
  3. entries() 把 Redis 的 Hash 转换成 Java 的 Map
  4. 返回 Java Map 对象
步骤3:Java 代码使用 Map
java 复制代码
// 现在userMap是Java的Map,可以直接使用
UserDTO userDTO = BeanUtil.fillBeanWithMap(userMap, new UserDTO(), false);
// ↑ 这里可以直接用Java的方法操作

五、转换的必要性

1. 系统之间的桥梁

Redis(数据库系统)

↓ entries()(转换方法)

Java(编程语言)

↓ 使用

Java代码可以直接操作

2. 数据格式转换

Redis Hash格式 → Java Map格式

(Redis能理解的) (Java能理解的)

总结

  • 虽然看起来一样,但 Redis Hash 和 Java Map 是不同系统的数据结构
  • entries() 的作用是把 Redis 的数据转换成 Java 能用的格式
  • 转换后,Java 代码才能直接操作这些数据
  • 这是不同系统之间数据交互的必要步骤

简单记忆:

  • Redis Hash = 银行里的钱(需要取出来)
  • Java Map = 手里的现金(可以直接用)
  • entries() = 从银行取钱(转换成现金)
相关推荐
乐观甜甜圈6 分钟前
JDK8 中线程实现方法与底层逻辑详解
java
尤物程序猿10 分钟前
Java如何不建表完成各种复杂的映射关系(鉴权概念、区域概念、通用概念)
java·开发语言
cike_y22 分钟前
JSP内置对象及作用域&双亲委派机制
java·前端·网络安全·jsp·安全开发
也许是_25 分钟前
大模型应用技术之 Spring AI 2.0 变更说明
java·人工智能·spring
xunyan623439 分钟前
面向对象(下)-内部类的分类
java·学习
巴拉巴拉~~1 小时前
KMP 算法通用进度条组件:KmpProgressWidget 多维度 + 匹配进度联动 + 平滑动画
java·服务器·前端
Yeniden1 小时前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
景川呀1 小时前
Java的类加载器
java·开发语言·java类加载器
yaoxin5211231 小时前
274. Java Stream API - 过滤操作(filter):筛选你想要的数据
java·windows
小白勇闯网安圈1 小时前
Java面向对象(上)
java