【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结果中,带来额外的内存消耗。

第二种方式就是进行手动序列化和反序列化

相关推荐
心之伊始44 分钟前
Java 后端接入大模型:从 Token、并发到推理成本的完整估算方法
java·spring boot·性能优化·大模型·llm
瀚高PG实验室1 小时前
pgsql-ogr-fdw
数据库·postgresql·瀚高数据库·highgo
IvorySQL1 小时前
PostgreSQL 技术日报 (6月5日)|PG19 Beta1 上线,PGConf.PL 2026开启征稿
数据库·postgresql·区块链
BlackTurn1 小时前
技术经理投标
java
YG亲测源码屋1 小时前
java配置环境变量、jdk环境变量配置、java环境变量设置方法
java·开发语言
abcy0712131 小时前
pycharm python sqlalchemy mysql增删改查实例csdn
数据库·oracle
MIUMIUKK1 小时前
从语法层面,看懂 Python 的特殊处
java·开发语言·python
无风听海1 小时前
IndexedDB 深度指南 浏览器中的事务型对象数据库
前端·数据库
hujinyuan201602 小时前
2026年3月 中国电子学会青少年软件编程(Python)三级考试试卷 真题及答案
java·python·算法
basketball6162 小时前
C++ 高级编程:2. 基本线程池实现
java·开发语言·c++