当前位置: 首页 > news >正文

【Redis,Java】Redis的两种序列化方式—nosql数据库

redis和mysql的区别:
redis是属于nosql的数据库,而mysql是属于sql数据库,redis是属于nosql数据库。mysql是存储在磁盘中的,redis是存储在内存中的,所以redis的读取书读快。这里所说的redis代表nosql,而mysql代表sql。
redis的数据库是以键值对为基础存储在内存中的,而mysql为代表的关系型数据库是以表为基础存储在磁盘中的。下面这张图总结了两者之间的区别:

在这里插入图片描述redis和java的互通:
1.Jedis客户端
1、 引入依赖

在这里插入图片描述
2、建立连接

在这里插入图片描述
3、使用
4、释放资源
在这里插入图片描述
缺点:jedis本身是线程不安全的,频繁的创建和销毁连接会有性能损耗。 —利用连接池代替jedis直连。

连接池设置在这里插入图片描述
使用
在这里插入图片描述
连接池的释放,仍然与Jedis直连一样。函数内部,它会有判断是否是连接池,如果是就归还连接。
SpringDataRedis.
– 对letture和Jedis的整合。
–提供了redistemplate类统一api来操作redis
–支持基于jdk、json、字符串、spring对象的数据序列化及反序列化。
在这里插入图片描述
1.引入依赖
在这里插入图片描述
2.引入redis的配置信息,springboot的application.properties文件

在这里插入图片描述
3.注入RedisTemplate,拿到连接池中的redisTemplate
private StringRedisTemplate redisTemplate;
如果要用这个方法使用redis一定注意redis的序列化,不然就会导致redis数据库内部的存储不对,因为在java这边,默认会将所要存储对象专程object类存储—将java对象转成字节,传到redis中,可能导致存储在redis中会乱码。
方式一
序列化方式

在这里插入图片描述
上述这种方式为了在反序列化知道对象的类型,json序列化器会将类的class类型也存储在json结果中,带来额外的内存消耗。
第二种方式就是进行手动序列化和反序列化

在这里插入图片描述

在这里插入图片描述

相关文章:

  • leetcode 01背包问题
  • Recorder 实现语音录制并上传到后端(兼容PC和移动端)
  • unity学习(15)——服务器组装(1)
  • LeetCode 0590. N 叉树的后序遍历:深度优先搜索(DFS)
  • 课后延时服务选课报名管理系统功能清单
  • RESTful 风格是指什么
  • 1027. 最长等差数列【leetcode】/动态规划
  • 【嵌入式】CAN总线
  • 数据库管理-第151期 Oracle Vector DB AI-03(20240218)
  • 【算法】树状数组
  • 突破编程_C++_面试(变量与常量)
  • WireShark 安装指南:详细安装步骤和使用技巧
  • 算法练习-01背包问题【含递推公式推导】(思路+流程图+代码)
  • 沁恒CH32V30X学习笔记11---使用外部时钟模式2采集脉冲计数
  • PAM | 账户安全 | 管理
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Apache Pulsar 2.1 重磅发布
  • HTML5新特性总结
  • JS学习笔记——闭包
  • SSH 免密登录
  • text-decoration与color属性
  • ucore操作系统实验笔记 - 重新理解中断
  • 爱情 北京女病人
  • 当SetTimeout遇到了字符串
  • 分布式任务队列Celery
  • 汉诺塔算法
  • 数组的操作
  • 探索 JS 中的模块化
  • ​io --- 处理流的核心工具​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # Java NIO(一)FileChannel
  • #android不同版本废弃api,新api。
  • #if和#ifdef区别
  • (13):Silverlight 2 数据与通信之WebRequest
  • (rabbitmq的高级特性)消息可靠性
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (简单) HDU 2612 Find a way,BFS。
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .“空心村”成因分析及解决对策122344
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net FrameWork简介,数组,枚举
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .net操作Excel出错解决
  • .NET基础篇——反射的奥妙
  • [Angular] 笔记 21:@ViewChild
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [C++]类和对象【上篇】
  • [CQOI 2010]扑克牌
  • [Deep Learning] 神经网络基础
  • [Grafana]ES数据源Alert告警发送
  • [hdu1561] The more, The Better 【树形DP】