首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >动力节点-王妈妈Springboot教程(六)Redis

动力节点-王妈妈Springboot教程(六)Redis

原创
作者头像
动力节点铁杆粉丝儿
发布2022-02-18 16:17:25
发布2022-02-18 16:17:25
6020
举报

第六章 Redis

  • 官方下载地址

动力节点springboot资料

  • 视频观看地址

https://www.bilibili.com/video/BV1XQ4y1m7ex

  • Redis : 一个NoSQL数据库, 常用作缓存使用 (cache)
  • Redis的数据类型: string , hash ,set ,zset , list
  • Redis是一个中间件: 是一个独立的服务器。
  • java中著名的客户端: Jedis , lettuce , Redisson
  • Spring,SpringBoot中有 一个RedisTemplate(StringRedisTemplate) ,处理和redis交互

6.1 配置Windows版本的redis

Redis-x64-3.2.100.rar 解压缩到一个非中文的目录

redis-server.exe:服务端, 启动后,不要关闭

redis-cli.exe:客户端, 访问redis中的数据

redisclient-win32.x86_64.2.0.jar : Redis图形界面客户端

执行方式: 在这个文件所在的目录, 执行 java -jar redisclient-win32.x86_64.2.0.jar

RedisTemplate 使用的 lettuce 客户端库

代码语言:javascript
复制
<!--redis起步依赖: 直接在项目中使用RedisTemplate(StringRedisTemplate)-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
data-redis使用的   lettuce 客户端库

在程序中使用RedisTemplate类的方法 操作redis数据, 实际就是调用的lettuce 客户端的中的方法

6.2 对比 StringRedisTemplate 和 RedisTemplate

  • StringRedisTemplate : 把k,v 都是作为String处理, 使用的是String的序列化 , 可读性好
  • RedisTemplate : 把k,v 经过了序列化存到redis。 k,v 是序列化的内容, 不能直接识别.

默认使用的jdk序列化, 可以修改为前提的序列化

  • 序列化:把对象转化为可传输的字节序列过程称为序列化。
  • 反序列化:把字节序列还原为对象的过程称为反序列化。

为什么需要序列化?

序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。我们必须在把对象转成字节数组的时候就制定一种规则(序列化),那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化)。

什么情况下需要序列化?

通过上面我想你已经知道了凡是需要进行“跨平台存储”和”网络传输”的数据,都需要进行序列化。

本质上存储和网络传输 都需要经过 把一个对象状态保存成一种跨平台识别的字节格式,然后其他的平台才可以通过字节信息解析还原对象信息。

序列化的方式

序列化只是一种拆装组装对象的规则,那么这种规则肯定也可能有多种多样,比如现在常见的序列化方式有:

  • JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift、Protofbuff、
  • Student( name=zs, age=20) ---- { “name”:“zs”, “age”:20 }
  • java的序列化: 把java对象转为byte[], 二进制数据
  • json序列化:json序列化功能将对象转换为 JSON 格式或从 JSON 格式转换对象。例如把一个Student对象转换为JSON字符串{“name”:“李四”, “age”:29} ),反序列化(将JSON字符串 {“name”:“李四”, “age”:29} 转换为Student对象)

设置key或者value的序列化方式

代码语言:javascript
复制
// 使用RedisTemplate ,在存取值之前,设置序列化
// 设置 key 使用String的序列化
redisTemplate.setKeySerializer( new StringRedisSerializer());

// 设置 value 的序列化
redisTemplate.setValueSerializer( new StringRedisSerializer());

redisTemplate.opsForValue().set(k,v);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第六章 Redis
    • 6.1 配置Windows版本的redis
    • 6.2 对比 StringRedisTemplate 和 RedisTemplate
      • 为什么需要序列化?
      • 什么情况下需要序列化?
      • 序列化的方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档