RedisTemplate&amp 序列化机制|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习 RedisTemplate&amp 序列化机制

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:RedisTemplate&amp 序列化机制】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/613/detail/9296


RedisTemplate&amp 序列化机制

内容介绍:

一、RedisTemplate&amp 序列化机制过程

二、redis 常见的数据类型分类

三、redis 常见的数据类型测试


一、RedisTemplate&amp 序列化机制过程

Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

1.安装 redis,使用 docker。

2.引入 redis 的 starter  

在官方文档中搜索 Spring boot ,在 spring boot 的1.5.12版本中找到所有和 redis有关的 starter 。

redis 就是与数据访问相关的,引入数据访问中的 spring boot starter data redis 这个场景启动器,输入 dependency 引入 starter ,redis 中相应的场景即可启动。

点击可查看引入的内容,此时我们引入了 jedis 客户端。

3.配置 redis

接下来进行引用并测试。进入到配置文件里,指定 redis.host(即指定 刚安装的 Linux redis 的主机地址:118.24.44.169)。

来到测试类中,当我们引入了 redis 场景以后,相当于有了jedis 相关的类,RediAutoconfiguration 就起作用了。redis 的自动配置除了给我们配置一些连接工厂外,还给我们配置了 redisTemplate object object 以及StringRedisTemplate ,相当于加了这两个Redis template,而这两个Redis template 可以用来用来简化 Redis 操作,与之前所学的 JBcv 操作数据库一样,进行操作用时只需要自动输入即可。

由于 redis 连接的操作字符串比较多,所以专门抽取出了一个简化字符串操作的,即 StringRedisTemplate 是用来简化操作 k-v 都是字符串的,redisTemplate是用来简化操作 k-v 都是对象的。


二、redis 常见的数据类型分类

Redis 常见的数据类型有5种

String (字符串)、List (列表)、Set (集合)、Hash (散列)、zSet (有序集合)

StringRedisTemplate

stringRedisTemplate.opsForValue()[String (字符串)]

stringRedisTemplate.opsForList([List (列表)]

stringRedisTemplate.opsForSetO[Se t(集合)]

stringRedisTemplate.opsForHash()[Hash (散列)]

stringRedisTempLate.opsForzSet()[zSet (有序集合)]

redisTemplate

redisTemplate.opsForCluster()

redisTemplate.opsForGco()

redisTemplate.opsForHash()

redisTemplate.opsForHyperLogLog()

redisTemplate.opsForList()

redisTemplate.opsForSet()

redisTemplate.opsForValue()  

redisTemplate.opsForZSet()


三、redis 常见的数据类型测试

举例说明,以 StringTemplate 为例

(1)stringRedisTemplate.opsForValue()

用 stringRedisTemplate.opsForValue() 来操作字符串,append 相当于 redis 命令里的 append 。

(2)给 redis 中保存了一个数据

@Test

public void teste1O4

stringRedisTemplate.opsForValue().append( k"msg",S:"he11o");

}

运行成功后,进行观察,发现 message 里面有了信息 hello,也可以进行更改并且保存。

(3)将数据进行读取

stringRedisTemplate.opsForValue().get("msg" ):

System.out.println(msg);

运行后发现数据为 hello world,与理论效果一致。

(4)测试列表,并未列表中放置内容stringRedisTemplate.opsForList().leftPush("mylist","1");stringRedisTemplate.opsForList().leftPush("mylist","2");

运行并测试,mylist中含有数据1、2

(5)测试保存对象 redisTemplate.opsForValue().set

使用:给某一个 key 设置一个值,假设为 emp-01,用 employeeempById 查出其值填入后运行,发现错误。

需要将默认序列转为可序列化的类,但是 employee 这个类是不能自动序列化的,就需要我们将它进行序列化(采用 Serializable)。

再次运行,发现存有序列化的数据。默认保存对象使用 JDK 序列化机制,序列化后的数据保存到 redis 中,我们习惯把数据以 json 方式保存,则有两种办法实现这个功能,第一种是自己把数据转换为j son,第二种则是利用 redis 里默认的序列化规则。

核心代码:

@Test

public void teste2(

Employee empById = employeeMapper.getEmpById

redisTemplate.opsForValue().set("emp-e1" , empById);

}

运行以后发现报错,提示需要一个可序列化的类,但是 Employee 并不是序列化后的,故需要对 Employee 序列化。

public class Employee implements Serializab1ei

再次运行,发现有了数据,但是是序列化的结果,则可以将数据以 Json 形式保存,可以有两种方式完成,

第一种是自己将代码转换为 json,在此不进行赘述,

第二种则是代码利用 redis 里默认的序列化规则,点进之后发现很多 key、值的序列化机制。

相关文章
|
存储 Java 数据库
|
6天前
|
存储 NoSQL Java
配置RedisTemplate序列化机制
通过上述步骤,你可以灵活配置RedisTemplate的序列化机制,根据应用需求选择合适的序列化器,从而确保数据在Redis中的存储和读取效率最优化。配置合适的序列化机制对于性能和存储效率至关重要,而且这样可以确保数据在存储和传输过程中的结构清晰和一致性。
65 11
|
2月前
|
存储 NoSQL Java
RedisTemplate序列化问题排查与优化建议。
最后,对于序列化问题的深入排查与优化,建议编写具有代表性的单元测试,以验证RedisTemplate配置的正确性和效能。此外,可以在非生产环境中测试不同的序列化策略,找到最适合当前应用场景的序列化方式。通过不断迭代和优化,达到持续提高数据存取能力的目标。
118 13
|
3月前
|
存储 安全 Java
深入理解Java序列化接口及其实现机制
记住,序列化不仅仅是把对象状态保存下来那么简单,它涉及到类的版本控制、安全性和性能等多个重要方面。正确理解和实现Java序列化机制对于构建高效、安全和可维护的Java应用至关重要。
118 0
|
JSON NoSQL Java
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
这篇文章介绍了在Java中使用Redis客户端的几种方法,包括Jedis、SpringDataRedis和SpringBoot整合Redis的操作。文章详细解释了Jedis的基本使用步骤,Jedis连接池的创建和使用,以及在SpringBoot项目中如何配置和使用RedisTemplate和StringRedisTemplate。此外,还探讨了RedisTemplate序列化的两种实践方案,包括默认的JDK序列化和自定义的JSON序列化,以及StringRedisTemplate的使用,它要求键和值都必须是String类型。
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
|
11月前
|
存储 缓存 安全
🌟Java零基础:深入解析Java序列化机制
【10月更文挑战第20天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
142 3
RedisTemplate序列化的问题
RedisTemplate序列化的问题
104 1
|
存储 JSON NoSQL
[Redis]——RedisTemplate的两种序列化方式
[Redis]——RedisTemplate的两种序列化方式
695 0
|
存储 JSON 缓存
Java 序列化机制详解
Java 序列化机制是一种将对象转换为字节流的过程,以便在网络上传输或保存到文件中,并能在需要时将字节流还原为对象。这一机制通过实现 `java.io.Serializable` 接口来实现,同时涉及到一些关键概念和注意事项。
179 0
Java 序列化机制详解
|
5月前
|
存储 安全 IDE
说一说序列化与反序列化中存在的问题
本文详细解析了Java中的序列化机制,包括序列化的概念、实现方式及应用场景。通过Student类的实例演示了对象的序列化与反序列化过程,并分析了`Serializable`接口的作用以及`serialVersionUID`的重要意义。此外,文章还探讨了如何通过自定义`readObject()`方法增强序列化的安全性,以及解决可序列化单例模式中可能产生的多实例问题。最后提供了代码示例和运行结果,帮助读者深入理解序列化的原理与实践技巧。
119 2

热门文章

最新文章