Redis存储List类型数据

2023-10-31

Redis存储支持的类型没有object,虽然有支持list,但是它只支持list<String>。

现在有两个方法存储对象与泛型。

1、用序列化与反序列化。

2、json

  本文采用的是json格式来存储object类型。

废话不多说,直接上代码

public class redisTest{
    /**
    *使用redis自带的工具类
    *也可以自己写一个redis工具类(不推荐)
    /
    @Autowired
    private RedisTemplate<String ,Object> redisTemplate;

    @Autowired
    private StudentsDao studentsDao;

    public void studentsRedis(){
        ValueOperations<String, Object> operations = redisTemplate.opsForValue();
        Students student = new Students();
        List<Students> list = studentsDao.getlist();
        //将Students转换为json格式
        JSONObject jsonObject = JSONObject.fromObject(student);
        //将json转换为json字符串
        String str = jsonObject.toString();
        //吧Students这个对象存放到redis中
        operations.set("key",str);
    }
}

现在的样子就是吧object对象存放到redis中去了。

取得时候吧json转换为需要的对象。


public void getRedis(){

    public List<Students> getStu(int stuId){
        List<Students> students =null;
        ValueOperations<String, Object> operations = redisTemplate.opsForValue();
        //吧json字符串转换成json
        String str = (String) operations.get("key" + stuId);
        //吧json转换成对象
        ObjectMapper mapper = new ObjectMapper(); 
        Students stu = mapper.readValue(str , Students .class);
    }
}

搞定!!!!

总结:正常情况下序列化效率挺高,但是如果碰到高并发的情况下,序列化与反序列化消耗太高,redis不支持存储object与泛型,是有理由的,所以还是用json比较好实现,简单。

吧object和list<?>转成json的字符串格式在set到redis中去,获取的时候在吧json转换成需要的对象,这样简单快捷,快操作试一试吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis存储List类型数据 的相关文章

  • XSD 验证错误:在 web.xml 中找不到 TagLib 标记

    我详细显示错误如下 cvc complex type 2 4 a 发现以元素开头的无效内容 taglib One of http java sun com xml ns javaee 描述 http java sun com xml ns
  • 如何正确地将MapStruct与Eclipse集成? (包括Lombok java代理)

    我愿意在一些官方项目中使用MapStruct 所以我决定先对其进行一些测试 我需要让它与 eclipse 集成工作 并遵循 MapStruct 网站上提供的所有说明 但是 到目前为止还没有运气 有人成功实现了这种整合吗 如果是的话我可以缺少
  • Firebase 实时数据库 .info/connected 本应为 True 时为 False

    我有一个 Android 服务 它的调用地址为onCreate FirebaseDatabase database FirebaseDatabase getInstance database getReference info connec
  • 使用 Bouncy Castle 重建 ED25519 按键 (Java)

    Bouncy Castle 的最新 测试版 版本 bcprov jdk15on 161b20 jar 支持 ED25519 和 ED448 EC 加密以进行签名 我设置了这个完整的工作示例 它按预期工作 我的问题 我是否正确重建了私钥和公钥
  • Junit测试中LocalDateTime反序列化的问题

    我有问题LocalDateTime反序列化Junit测试 我有简单的REST API返回一些DTO目的 当我呼叫端点时 响应没有问题 它是正确的 然后我尝试编写单元测试 得到MvcResult并使用ObjectMapper将其转换为我的DT
  • 如何在我的 HttpClient 执行器中遵循单一职责原则?

    我在用RestTemplate http docs spring io spring docs current javadoc api org springframework web client RestTemplate html as
  • Java OR 运算符优先级

    如何在 Java 中以 if 的方式链接条件语句b是假的 不如不检查c If a and c是假的 并且b是真的 确实c会被检查吗 if a b c 我正在寻找 PHP 所拥有的类似功能 但两者之间存在差异OR and 爪哇 如果左操作数是
  • 将 Java 3D 坐标转换为 2D 屏幕坐标

    我正在使用一个名为 Walrus 的 Java 3D 应用程序 该应用程序用于显示有向图 该代码已经具有突出显示节点并在给定其屏幕坐标的情况下在图形中相邻绘制标签的功能 旋转屏幕后 该节点不再突出显示 我所拥有的是 3D 中的节点坐标 我需
  • 使android listview布局可滚动

    我有一个 xml 文件 其布局为 ASCII 形式 ImageView TextView List
  • 如何从 Jackson 中的自定义解串器调用默认解串器

    我在杰克逊的自定义解串器有问题 我想访问默认序列化器来填充我要反序列化的对象 在填充之后 我将做一些自定义的事情 但首先我想使用默认的 Jackson 行为反序列化对象 这是我目前拥有的代码 public class UserEventDe
  • 从多个地方绘制 JPanel

    我目前正在为学校开发一款 Java 2D 游戏 我们必须使用抽象工厂设计模式 对于 2D 实现 我使用工厂如下 public class Java2DFact extends AbstractFactory public Display d
  • Jackson 中没有注释的多态反序列化

    我有一个CloudEvent
  • Spring 非托管 bean 的依赖注入

    我有一个非托管的 JPA 域类 它是通过实例化的new操作员 UserAccount account new UserAccount userRepository save account In my UserAccount类 我有一个be
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • 有没有办法防止 Spring Boot 覆盖 bean?

    与春天的抽象可刷新应用程序上下文 http docs spring io spring docs current javadoc api org springframework context support AbstractRefresh
  • 如何使用JSqlParser向sql添加where条件?

    我想用JSqlParser向sql添加where条件 例如 Before select from test table where a 1 group by c After select from test table where a 1
  • Android中计算两个时间之间的差异

    我有两个字符串变量 例如 StartTime 和 EndTime 我需要通过用 StartTime 减去 EndTime 来计算 TotalTime StartTime和EndTime的格式如下 StartTime 08 00 AM End
  • 当键位于父类中时,如何将一对多集合映射到连接的子类

    我想将一对多集合映射到子类 但集合的键是父类的属性 目前我正在映射 AbstractFoo Foo 和 Bar 类 如下所示
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要

随机推荐

  • 小福利,数据可视化之常见图形的绘制

    大家好 我是天空之城 今天带来小福利 数据可视化之常见图形的绘制 读取 本 专 科 群体的数据 college student data pd read csv 工作 college student data csv encoding ut
  • opencv提取图像中的颜色直方图(RGB、HSV)

    本篇博客主要介绍利用opencv工具提取一幅图像中的颜色直方图特征 所谓颜色直方图 指的是一幅图像中的颜色分布 与图像中的特定的物体无关 只是用来表示人的眼睛观察到的图像中的颜色分布情况 例如说 一幅图中红色占了多少比例 绿色占了多少比例等
  • 模型旋转 触摸屏 手指滑动360度旋转 安卓版本 EasyTouch

    using UnityEngine using System Collections using System Collections Generic using DG Tweening using UnityEngine EventSys
  • 4.2.3 积分法(二)——分部积分法

    emmmm想想词 算了想不出来 既然不定积分和导数是反操作 那就从导数开始说吧 先看一个导数公式 就不解释变形过程了 上图其实就是分部积分法的计算过程 总之是分成两个步骤 先分部再积分 至于 C等到完全积分积出来之后再加 目前我们总结过的不
  • 深入 Python 3

    深入 Python 3 http dipyzh bitbucket org table of contents html xml 目录 深入 Python 3 中有何新内容 又名 负号层 安装 Python 深入 哪个版本的 Python
  • ajax前后端交互示例

    文章目录 一 前后端交互方法 1 Ajax前端示例 1 1 特点 1 2 ajax同域请求示例 1 3 ajax跨域请求示例 2 后端示例 2 1 controller层处理 一 前后端交互方法 1 Ajax前端示例 1 1 特点 Ajax
  • leetcode92 反转链表II

    题目 给你单链表的头指针 head 和两个整数 left 和 right 其中 left lt right 请你反转从位置 left 到位置 right 的链表节点 返回 反转后的链表 示例 输入 head 1 2 3 4 5 left 2
  • css动画(四)

    推荐动画四 html代码上传 div class night div class shooting star div div class shooting star div div class shooting star div div c
  • Swagger整体整理一下蛤

    最近在学习springboot时候发现好多开源的项目里面都提到了swagger 原来是一个前后端分离开发过程中为了防止两只团队为了需求更改打架 毕竟前端需要加一个参数 后端就要改好多好多 多的不说 直接上货 1 导入依赖 首先是导入依赖 既
  • Unity的Application.Quit()方法使用失效的其他解决方案。

    1 android手机上 使用方法 Application Quit 之后 游戏的进程还在 解决方法编写java代码 打成jar包或aar放到Assets Plugins Android libs下 public void KillProc
  • 全球互联网未来发展九大趋势

    当今世界网络信息技术日新月异 互联网正在全面融入经济社会生产和生活各个领域 引领了社会生产新变革 创造了人类生活新空间 带来了国家治理新挑战 并深刻地改变着全球产业 经济 利益 安全等格局 互联网正在成为21世纪影响和加速人类历史发展进程的
  • STL模板(一)向量、栈和队列

    一 vector 向量 1 定义 向量类型可以容纳许多类型的数据 被称为容器 可以当数组使用 可以随时增加或减少元素 内存连续 顺序表 2 头文件 include
  • unity, Animation crossfade需要两动画在时间上确实有交叠

    unity现在播动画都用Animator了 但公司的老项用的还是Animation 今天遇到一个bug 是两个动画的衔接处不连贯 最后发现是由于A动画已经播完之后B动画才开始播 而且还用了crossfade 0 2 正确的用法是在A动画还差
  • layui框架学习(30:树形模块)

    Layui中的树形组件模块tree用于以树形形式显示上下级结构的数据 类似于winform中的tree控件 tree模块的基本用法及显示效果如下所示 div div br
  • 2020年高教社杯全国大学生数学建模竞赛C题 第二问详细解答+代码

    2020年高教社杯全国大学生数学建模竞赛C题 第二问详细解答 代码 本文摘自小编自己的参赛论文与经历 小编获得了2020年高教社杯国奖 有问题的同学们可私聊博主哦 问题2 缺少信誉评级后的 信贷策略 研究 1 1 问题分析 问题二与问题一的
  • go语言检测字符串是否是回文

    输入的字符串分为三种情况 本身就是回文字符串 如 aba bddb vvvvv和vvvv等 本身不是回文字符串 但是可以通过删除一个字符成为回文字符串 如 abca deeee eddze和aydmda等 本身不是回文字符串 不能通过仅删除
  • vmware 不能自适应客户机的解决办法

    本文适用于 安装了vmware tools 后 立即适应客户机 仍为灰色 不能自适应的情况 环境 物理机 WIN10 vmware64 ubuntu16 04 sudo apt get install open vm tools open
  • 解决IDEA一个突发异常

    解决Module learn production java lang ClassCastException class org jetbrains jps builders java dependencyView TypeRepr Pri
  • 挣值常用的计算公式

    原文 http www cnitpm com pm 7707 html http blog sina com cn s blog 4be9c1450100vccg html 挣值管理法中的PV EV AC SV CV SPI CPI这些英文
  • Redis存储List类型数据

    Redis存储支持的类型没有object 虽然有支持list 但是它只支持list