Java redis存Map对象类型数据怎么实现
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"Java redis存Map对象类型数据怎么实现"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java redis存Map对象类型数据怎么实
千家信息网最后更新 2025年11月07日Java redis存Map对象类型数据怎么实现
这篇文章主要介绍"Java redis存Map对象类型数据怎么实现"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java redis存Map对象类型数据怎么实现"文章能帮助大家解决问题。
背景描述
项目需要将设备采集到的最新经纬度信息存入redis缓存中,方便及时查询检索。考虑到根据检索条件不同,所查询的设备不同。采取将数据以map类型存入redis缓存,在此记录一下。
实体类
注:一定要实现序列化接口
父类
public class Redis implements Serializable{ private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }}子类
import java.io.Serializable;public class RedisCustom extends Redis { private String stuCode; public String getStuCode() { return stuCode; } public void setStuCode(String stuCode) { this.stuCode = stuCode; }}方法1°
redisTemplate.opsForHash()
示例代码
@Controller@RequestMapping("/redis")public class RedisController { @Autowired private RedisTemplate redisTemplate; /** * @param * @return */ @RequestMapping(value = "/setRedisData", method = RequestMethod.GET) @ResponseBody public Map setRedisData() { RedisCustom redis1 = new RedisCustom(); redis1.setName("小明"); redis1.setAge(12); redis1.setStuCode("36"); RedisCustom redis2 = new RedisCustom(); redis2.setName("小红"); redis2.setAge(11); redis2.setStuCode("24"); //构造存入redis中的map Map redisDataMap = new HashMap(); redisDataMap.put(redis1.getName(), redis1); redisDataMap.put(redis2.getName(), redis2); //存入redis redisTemplate.opsForHash().putAll("redisTest",redisDataMap); //获取缓存内容 Map resultMap = redisTemplate.opsForHash().entries("redisTest"); //List reslutMapList = redisTemplate.opsForHash().values("redisTest"); //Set resultMapSet = redisTemplate.opsForHash().keys("redisTest"); //RedisCustom value = (RedisCustom)redisTemplate.opsForHash().get("redisTest","小明"); return ResponseData.success(resultMap); }} 结果
参考
https://www.yisu.com/article/246815.htm
方法2°
将对象转成byte[]
序列化及反序列化工具类
import java.io.*;/** * 序列化及反序列化工具类 */public class SerializeObjectTool { //序列化 public static byte[] serialize(Object obj) { ObjectOutputStream obi = null; ByteArrayOutputStream bai = null; try { bai = new ByteArrayOutputStream(); obi = new ObjectOutputStream(bai); obi.writeObject(obj); byte[] byt = bai.toByteArray(); return byt; } catch (IOException e) { e.printStackTrace(); } return null; } // 反序列化 public static Object unserizlize(byte[] byt) { ObjectInputStream oii = null; ByteArrayInputStream bis = null; bis = new ByteArrayInputStream(byt); try { oii = new ObjectInputStream(bis); Object obj = oii.readObject(); return obj; } catch (Exception e) { e.printStackTrace(); } return null; }}示例代码
@Controller@RequestMapping("/redis")public class RedisController { /** * @param * @return */ @RequestMapping(value = "/setRedisData", method = RequestMethod.GET) @ResponseBody public Map setRedisData() { RedisCustom redis1 = new RedisCustom(); redis1.setName("小明"); redis1.setAge(12); redis1.setStuCode("36"); RedisCustom redis2 = new RedisCustom(); redis2.setName("小红"); redis2.setAge(11); redis2.setStuCode("24"); //构造存入redis中的map Map redisDataMap = new HashMap(); redisDataMap.put(redis1.getName(), redis1); redisDataMap.put(redis2.getName(), redis2); //连接redis Jedis redis = new Jedis("xx.xx.xxx.xx", 6379); redis.auth("xxxxxxxxxxx"); //存 byte[] personByte = SerializeObjectTool.serialize(redisDataMap); redis.set("redisData".getBytes(), personByte); //取 byte[] byt = redis.get("redisData".getBytes()); Object obj = SerializeObjectTool.unserizlize(byt); Map redisData = (Map) obj; return ResponseData.success(redisData); }} 关于"Java redis存Map对象类型数据怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
序列
对象
数据
类型
不同
方法
知识
缓存
小明
代码
内容
工具
示例
行业
设备
小红
查询
检索
实用
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河西金蝶软件开发哪家强
网络安全工程师养成
自己搭建服务器建的邮箱安全吗
数据库的mdf文件
对抗神经网络技术
重庆服务器机柜供应商
服务器远程老是失败
vf数据库导入excel方法
软件开发过程的分析阶段包括
发邮件被服务器拒绝
福田区新一代网络技术开发动态
我的世界服务器打躲猫猫
双人成行开加速器无法连接ea服务器
腾讯云开发数据库的数据记录顺序
广州预约疫苗获取数据库失败
信息网络安全教育内容
网络安全保护培训心得
厦大数据库
承德祥龙网络技术服务有限公司
网络安全服务关键步骤
数据库技术与应用阶段性作业2
达芬奇数据库名称不能为空
金铲铲扫码跳显示服务器已满
邮箱服务器怎么备份
上海常见网络技术性能
云开发数据库数据被抹除
服务器管理器无法删除角色
数据库 学 好
梦幻西游现有多少个服务器
共享的数据库的创建